2013-06-26 33 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