強制終了を考える前に、robocopyの設定を見直してはいかがでしょうか?
デフォルトでは30秒ごとに100万回リトライといった設定のはずです。
補足:強制終了する場合
今回はrobocopyの設定の変更で問題無いと思いますが、強制終了する方法を示しておきます。
WshScriptExec オブジェクトの
Terminate メソッド (WshScriptExec)を使用すると、実行したプロセスを強制終了できます。
出来るのは強制終了だけですので、終了条件は自分で考えて実装する必要があります。
コードにすると以下のようなイメージです。
vbscript
1' ...
2Dim wExec 'As WshExec
3Set wExec = wsShell.Exec(robocopyCmd)
4
5' 強制終了する時間
6Const WAIT_SEC = 5
7Dim endTime
8endTime = DateAdd("s", WAIT_SEC, Now) 'WAIT_SEC 秒待機
9
10Const WshRunning = 0, WshFinished = 1, WshFailed = 2
11Do
12 If wExec.Status <> WshRunning Then
13 'If wExec.ExitCode = ~
14 WSH.Echo "終了"
15 Exit Do
16 End If
17
18 If Now > endTime Then
19 Call wExec.Terminate
20 WSH.Echo "強制終了"
21 Exit Do
22 End If
23
24 WSH.Sleep 10
25Loop
ただし、
Terminate メソッドは最後の手段としてのみ使用します。これは、アプリケーションによっては適切にクリーンアップできない場合があるためです。通常は、プロセスを途中で中断せず、プロセス自身で実行を終了させるようにします。
Terminate メソッド (WshScriptExec)より引用
とあるように最後の手段です。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。