Batch file 将另一个批处理文件复制到文件夹后运行错误的批处理文件
问题是它调用的是原始的beamthemup2.bat文件,而不是复制的文件Batch file 将另一个批处理文件复制到文件夹后运行错误的批处理文件,batch-file,copy,Batch File,Copy,问题是它调用的是原始的beamthemup2.bat文件,而不是复制的文件 @ECHO OFF for /d %%X in (*) do ( copy "beamthemup2.bat" "%%X" @echo "%%X\beamthemup2.bat" pause call "%%X\beamthemup2.bat" ) 更新 这是第二个bat文件。它似乎正在复制并运行正确的批处理文件。但问题是。运行上述批处理文件时,第一个%cd%将返回第一个批处理文件的路
@ECHO OFF
for /d %%X in (*) do (
copy "beamthemup2.bat" "%%X"
@echo "%%X\beamthemup2.bat"
pause
call "%%X\beamthemup2.bat"
)
更新
这是第二个bat文件。它似乎正在复制并运行正确的批处理文件。但问题是。运行上述批处理文件时,第一个%cd%将返回第一个批处理文件的路径,但是,如果我在希望将其复制到的文件夹中单独运行第二个,则%cd%将返回正确的文件夹
@ECHO OFF
for /r %%X in (*) do (
"c:\Program Files\7-Zip\7z.exe" a -tzip "%cd%" "%%X"
@ECHO %cd%
pause
)
当前工作目录仍然是启动第一批文件的目录。运行第二个批处理文件不会更改工作目录
尝试将
cd%~dp0
添加到第二批文件中(在@ECHO OFF
之后)。这将cd到批处理文件所在的目录。您当前的工作目录仍然是启动第一批处理文件的目录。运行第二个批处理文件不会更改工作目录
尝试将cd%~dp0
添加到第二批文件中(在@ECHO OFF
之后)。这将cd到批处理文件所在的目录