0

フォルダーのすべてのファイルの HASH を計算し、それを xml ファイルに保存するプログラムを作成しました。今私の目的は、プログラムの外部から明示的に、評価するフォルダーを指定することです

  Dim WshShell, oExec, input
Set WshShell = CreateObject("WScript.Shell")
Set oExec    =_
     WshShell.exec("C:\Users\Administrator\Downloads\fciv.exe -md5 -r -xml _
     d.xml C:\openssl")

 input = ""

 Do While oexec.status=0


 WScript.Sleep 5000
 Loop

これがプログラムです。入力を明示的に与えることができると考えて、inputboxコマンドを追加してみました。ここに変更されたプログラムがあります

 Dim WshShell, oExec, strin
 Set WshShell = CreateObject("WScript.Shell")
 strin= inputbox("folder")
 Set oExec    =_
  WshShell.exec("C:\Users\Administrator\Downloads\fciv.exe -md5 -r -xml ex.xml strin")
 input = ""
 Do While oexec.status=0*

 WScript.Sleep 1000
 Loop

これは機能していません:(助けてください。thrを使用しているのは正確には何ですか?また、cmdファイルを使用して同じ入力を与えるにはどうすればよいですか???

4

1 に答える 1

1

&コマンド文字列を作成するには、文字列連結演算子を使用するだけです。

 Dim WshShell, oExec, strin
 Set WshShell = CreateObject("WScript.Shell")
 strin= inputbox("folder")
 Set oExec    =_
  WshShell.exec("C:\Users\Administrator\Downloads\fciv.exe -md5 -r -xml ex.xml """ & strin & """")
 input = ""
 Do While oexec.status=0
     WScript.Sleep 1000
 Loop

入力パスにスペースが含まれている場合に備えて、適切な二重引用符を自由に追加しました。パスの検証を追加することもできます。たとえば、次のようになります。

dim fso: set fso = CreateObject("Scripting.FileSystemObject")
if not fso.FolderExists(strin) then
     WScript.Echo strin & " not found"
     WScript.Quit 1
end if
于 2013-08-01T09:32:45.217 に答える