0
objShell.Run
という行を1つだけ実行すると、このコードは私には完璧に機能します。私は複数のobjShell.Run
ラインを持っているしたい場合個々のメッセージで返り値を返すように処理する
Set objShell = WScript.CreateObject("WScript.Shell")
retval = objShell.Run ("cmd /c title Phase 1 & robocopy C:\this C:\that /MIR /L",1,True)
If retval < 0 Then
MsgBox "cmd aborted, return value is: " & retval
ElseIf retval > 7 Then
MsgBox "robocopy error, return value is: " & retval
Else
MsgBox "robocopy successful, return value is: " & retval
End If
どのように私は、行く必要があるでしょうか? など。
retval = objShell.Run ("cmd /c title Phase 1 & robocopy C:\this C:\that /MIR /L",1,True)
retval = objShell.Run ("cmd /c title Phase 2 & robocopy C:\thistoo C:\thattoo /MIR /L",1,True)
retval = objShell.Run ("cmd /c title Phase 3 & robocopy C:\andthis C:\andthat /MIR /L",1,True)
私はそれぞれのretval変数を一意にすることができます。 retval1
、retval2
、retval3
[If..Then..Else]ステートメントを繰り返しますが、それは鈍い感じで、おそらく最も良い方法ではありません。
私にとって、最も良い方法は、完了したときに、個々のobjShell.Run
行についての "レポート"を表示するMsgBox
です。すべてのラインが成功した場合を除いて、MsgBox "all done"
はうまくいくでしょう。
検索の開始方法はどちらですか?関数、配列?
現在のスクリプトが 'MyCommandSequence' に関する型の不一致エラーを与える、なぜ理解していません。 – WatskeBart
MyCommandSequenceは配列として宣言されていないので、Dim MyCommandSequence(3)を追加して、3のサイズの配列を宣言しました。 – WatskeBart
VBを使用している場合、使用する前に配列を宣言する必要はありませんそれは.... DIMのように....これがあなたに役立つなら、答えとしてマークしてください。ありがとうn幸運... – Zeddy