2013-06-03 48 views
0

我正在使用for /f命令設置多個變量。在命令提示符循環中調用變量

 
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 

現在我已經設置了它們,我需要能夠在循環中調用它們並將它們應用於以下命令。

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

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

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

的原因,我需要他們在一個循環是因爲變量的數量週期性變化,我需要它能夠找出有多少做在前面的命令,然後在第二個命令應用它們。我不希望有多次和唯一的變化(var1)至(var2)複製此命令(var3)等

+0

我建議你使用標準你的變量的數組表示法:'SET var [!vidx!] = %% A'。請參閱:http://stackoverflow.com/questions/10544646/dir-output-into-bat-array/10569981#10569981 – Aacini

回答

2

試試這個:

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 
+0

謝謝你的工作完美。 – Samhut101