在命令提示符循环中调用变量

Recalling variables in a command prompt loop

我正在使用 for /f 命令设置一些变量。

1
2
3
4
5
6
7
setlocal ENABLEDELAYEDEXPANSION
set vidx=0
for /F"tokens=*" %%A in (target_list.txt) do (
    SET /A vidx=!vidx! + 1
    SET var!vidx!=%%A    
)
set var

现在我已经设置了它们,我需要能够在循环中调用它们并将它们应用于以下命令。

1
2
3
4
5
copy gateway%num%.bat \\\\%var1%\\C$\\WINDOWS\\system32

psexec \\\\%var1%\\ gateway%num%.bat

del \\\\%var1%\\\\C$\\WINDOWS\\system32\\gateway%num%.bat

我在循环中需要它们的原因是因为变量的数量会定期变化,我需要它能够弄清楚它在前一个命令中产生了多少,然后在第二个命令中应用它们。我不想一遍又一遍地复制这个命令,只将 (var1) 更改为 (var2) 到 (var3) 等。


试试这个:

1
2
3
4
5
for /l %%i in (1,1,%vidx%) do copy copy gateway%num%.bat \\\\!var%%i!\\C$\\WINDOWS\\system32

for /l %%i in (1,1,%vidx%) do psexec \\\\!var%%i!\\ gateway%num%.bat

for /l %%i in (1,1,%vidx%) do del \\\\!var%%i!\\\\C$\\WINDOWS\\system32\\gateway%num%.bat