• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:WshShellから起動したbat(ftp)の応答メッセージを取得するには)

WshShellから起動したbat(ftp)の応答メッセージを取得するには

このQ&Aのポイント
  • WshShellから起動したバッチファイル(ftp)の応答メッセージの取得方法について教えてください。
  • バッチファイルを実行すると、resulf.logには応答メッセージが表示されない現象が発生しています。
  • VBからWshShellオブジェクトのExecメソッドでバッチファイルを実行した場合に、応答メッセージを取得する方法を教えてください。

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

  • ベストアンサー
  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.3

>Set we = ws.Exec("cmd.exe /c D:\VB\test.bat > test.log") 見落としてました(^^; Exec使ってたんですね。 でしたら標準出力への出力結果はファイルには出ません。 Execメソッドの戻り値であるWshScriptExecのStdOutプロパティからアクセスすることになります。 ファイルに出力されるのを希望されるんでしたら、Execではなく、Runメソッドを使用してください。こちらでも終了待てますんで。

zerokara
質問者

お礼

Runメソッドを使用しましたら上手くいきました。 色々勉強になりました。有難う御座いました。

その他の回答 (2)

  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.2

>Set we = ws.Exec("cmd.exe /c D:\VB\test.bat > test.log") test.logにパスが指定されてませんが平気ですか? どこに出力されるはずかわかってます?フルパス指定して確かめてみてください。

zerokara
質問者

補足

taka_tetsuさん、レス有難う御座います。 おっしゃるとおりにフルパスにして試してみましたが、 結果は同じでした。 DOSプロンプトからbatファイルを起動するとresulf.log に以下の内容が取得できるのですが(悩) 200 PORT command successful. 150 Opening ASCII mode data connection 226 Transfer complete. ftp: 93868 bytes sent in 0.03Seconds 3128.93Kbytes/sec.

  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.1

"cmd.exe /c test1.bat" のようにして起動してみてください。 リダイレクトはcmd.exeやcommand.comの機能です。

zerokara
質問者

お礼

お世話になります。 早速の回答有難うございます。 言われました通りに起動してみましたが、resulf.log にftpの応答メッセージは取れませんでした。 Set ws = New WshShell Set we = ws.Exec("cmd.exe /c D:\VB\test.bat > test.log") Do While we.Status = 0 Sleep 100 Loop

関連するQ&A

専門家に質問してみよう