2013-06-03 2 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

Смежные вопросы