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プロンプトから手入力、実行ではうまくいきます。
何が問題なのか分かる方、教えてください。
よろしくお願いします。

このQ&Aに関連する最新のQ&A

とは シェル」に関するQ&A: シェルとは

A 回答 (1件)

[自信なし]になってますが、[自信全然なし]です。

。。

やってみました。たしかに無理でした。
おそらくですが・・・
[<]や[>]は基本的にDOSの機能だから、その機能を操作するにはDOSShellを起動して、パイプを作成し、DOSShellそのものにそれらの文字列を送らないといけないような気がします。
ただそれを実現するには、VBでは不安定要素がいっぱいです。たぶん落ちまくりになるでしょう。
うーん、別方法で実現できるのかなぁ?勉強不足っす。


kakasi.exe -Jk -Hk -Kk <D:\kakasi\401.txt > D:\kakasi\401.txt1
をテキスト形式で"xxx.bat"という名で保存して、"xxx.bat"を実行してはだめ?
DOS窓が見えて、目がシパシパするけど・・・
    • good
    • 0
この回答へのお礼

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

お礼日時:2002/01/22 12:43

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング

おすすめ情報