• ベストアンサー

Shellの使い方について

VBを最近はじめたのですが、Shellがうまくいかず、困っています。 下記のような内容で、MS-DOS上で動作するプログラムをShellで呼び出していますが、ファイルが見つからないというエラーが出てしまいます。(<D:\kakasi\401.txt:No such file or directory) com1 = "kakasi.exe " + param + " <" + lbl_open_file + " > " + lbl_save_file retval = Shell(com1, vbNormalFocus) kakasi.exeには、パスが通してありますので、lbl_open_fileやlbl_save_fileのファイルが見つからないと思われます。 実行時のcom1の値は、kakasi.exe -Jk -Hk -Kk <D:\kakasi\401.txt > D:\kakasi\401.txt1 になっていて、DOSプロンプトから手入力、実行ではうまくいきます。 何が問題なのか分かる方、教えてください。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.1

[自信なし]になってますが、[自信全然なし]です。。。 やってみました。たしかに無理でした。 おそらくですが・・・ [<]や[>]は基本的にDOSの機能だから、その機能を操作するにはDOSShellを起動して、パイプを作成し、DOSShellそのものにそれらの文字列を送らないといけないような気がします。 ただそれを実現するには、VBでは不安定要素がいっぱいです。たぶん落ちまくりになるでしょう。 うーん、別方法で実現できるのかなぁ?勉強不足っす。 kakasi.exe -Jk -Hk -Kk <D:\kakasi\401.txt > D:\kakasi\401.txt1 をテキスト形式で"xxx.bat"という名で保存して、"xxx.bat"を実行してはだめ? DOS窓が見えて、目がシパシパするけど・・・

hidezo
質問者

お礼

お礼が大変遅くなってしまってすみませんでした。 最近VBを始めたんですけど、できないことが多くて挫折ばかりです。(←プログラムの腕が無いだけですけど・・・) この辺、VCだったらそういう機能があるのかな~? .batのファイルを自動的に作成させて実行もいいかもしれないですね。 現状のプログラムは、例のkakasi.exe -Jk -Hk -Kk <D:\kakasi\401.txt > D:\kakasi\401.txt1をプログラムでクリップボードにコピーして、DOSプロンプトを開かせて、あとは手動でペーストボタンクリック+ENTERで実行してます。 今度は.batで組んでみます。 情報ありがとうございます。

関連するQ&A