我正在尝试编写一个执行以下命令集的批处理脚本:
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'窗口内运行。
答案 0 :(得分: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