2

HTA プログラムでファイルへのリダイレクトが機能しない理由を誰か教えてもらえますか? 次の内容が含まれます。

Set objShell = CreateObject("Shell.Application")
objShell.ShellExecute "md5sums.exe", "tarball.tar > .\md5sum.log", , , NORMAL_WINDOW

リダイレクトなしで上記の 2 行を使用して HTA プログラムを実行すると、正常に動作します。しかし、2 番目に "> .\md5sum.log" を追加すると、md5sums.exe は次のエラーを吐き出します。

 Unable to read file/directory .\md5sum.log

これは、リダイレクト シンボルを無視し、存在しない md5sum.log ファイルのチェックサムを取得しようとしていることを意味します。

md5sums.exe は単なる外部チェックサム プログラムです。コマンドラインから次を実行すると、正常に動作します。

 md5sums.exe tarball.tar > .\md5sum.log

期待どおり、tarball.tar のチェックサムを md5sum.log ファイルにパイプします。

解決策を見つけることなく、インターウェブ全体を高低で検索しました。誰でも提供できるヘルプをいただければ幸いです。

4

1 に答える 1

1

ついにそれを理解しました!誰かがこれに遭遇した場合:

shellCmd = "cmd /c md5sums.exe ""tarball.tar"" > ""md5sum.log"""
Set shell = CreateObject("WScript.Shell")
shell.Run shellCmd
于 2012-11-07T22:40:58.237 に答える