2013-06-26 2 views
0

Я хочу, чтобы командный файл записывал другой пакетный файл в каждый подкаталог, запускал командный файл и затем удалял его. Проблема возникает при написании большого количества информации в цикле for. Есть ли более эффективный способ, кроме цепочки & &? Кроме того, я не уверен, будет ли писать команды в пакетный файл, если он запустят командный файл?Запись, выполнение и удаление командного файла

for /D /R "%cd%" %%d IN (*) do set thing=%%~nd && echo @ECHO OFF>%%d\Desktop.bat && call %%d\Desktop.bat && del /Q %%d\Desktop.bat 
+0

Почему вы не получаете пакетный файл для выполнения команды? Я не думаю, что вы полностью объяснили цель. – foxidrive

ответ

1

Вы могли бы сделать что-то вроде (непроверенные):

for /D /R ... IN ... DO CALL :PROCESS %%d 
GOTO END 

... 

:PROCESS 
set thing=%~n1 
echo @echo off>%1\Desktop.bat 
call %1\Desktop.bat 
del /q %1\Desktop.bat 
GOTO :EOF 


... 

END: 
... etc ... 
+0

Я думал об использовании GOTO, но я не был уверен, что вы можете вернуться обратно в цикл for? –

+0

Чтобы вернуться назад, вы должны использовать «CALL: LABEL», а затем «GOTO: EOF», как показано в примере. – Joe

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