2014-04-28 119 views
0

我試圖寫一個批處理腳本,執行以下命令集:批處理腳本退出對SET

for /f "delims=: tokens=2" %I in ('ipconfig^|findstr /I /C:"Default Gateway . . . . . . . . . : 192.168"') do SET gw=%I 
if "%gw%" == " 192.168.1.1" \\server\script.cmd 
if "%gw%" == " 192.168.2.1" \\server\script2.cmd 
if "%gw%" == " 192.168.3.1" \\server\scripts3.cmd 

的問題是當FOR語句運行SET命令腳本的其餘部分之前退出命令被運行。

我需要的批處理腳本是設置'gw'變量,然後繼續其餘的命令。

參考:該腳本假設解析計算機的網關,然後根據該信息運行另一個腳本。當單獨執行時,所有命令都從'cmd'窗口內運行。

回答

1

你必須加倍FOR%是可變的.Bat文件:

for /f "delims=: tokens=2" %%I in ('ipconfig^|findstr /I /C:"Default Gateway . . . . . . . . . : 192.168"') do SET gw=%%I 
if "%gw%" == " 192.168.1.1" \\server\script.cmd 
if "%gw%" == " 192.168.2.1" \\server\script2.cmd 
if "%gw%" == " 192.168.3.1" \\server\scripts3.cmd