批处理 - 调用另一个批处理并执行它

批处理 - 调用另一个批处理并执行它

我正在尝试使一些批处理文件运行。

我拥有的第一个(可以工作)将从.rar一个驱动器带到另一个驱动器,并为目录赋予与放入 rar 的文件相同的名称,然后将 rename.bat 文件复制到目标。

@ECHO OFF
cd /d J:\xxx
set path=C:\Program Files\WinRAR
FOR /f "delims=" %%d IN ('DIR /B') DO md J:\xxx\%%~nd
FOR /f "delims=" %%d IN ('DIR /B') DO WinRAR a -m0 -ep -vn -v500000B "xxx\%%~nd\%%~nd.rar" "%%~fd"
cd /d J:\xxx
FOR /f "delims=" %%d IN ('DIR /B') DO copy J:\xxx\rename.bat J:\xxx\%%~nxd 
EXIT

第二个调用 rename.bat 并执行它,但只部分起作用,因为它调用了 rename.bat 但没有执行,只是打开了一个新窗口。

@ECHO OFF
cd /d J:\xxx
for /f "delims=" %%n IN ('DIR /B') DO start J:\xxx\%%~n\rename.bat
EXIT

rename.bat 如下所示:

for /f "Tokens=*" %%f in ('dir /l/b/a-d') do (rename "%%f" "%%f")

如果我只是执行目录中的文件,这个就可以工作,但是调用时它却不起作用。

有人有任何想法可以实现这一点,因为我现在没有好的想法。

如果可以在一个 .bat 中完成,我也会喜欢它。

答案1

CALL BATCHFILE2.BAT会做你想做的事,正如解释的那样

https://stackoverflow.com/questions/1103994/how-to-run-multiple-bat-files-within-a-bat-file

COMMAND /C BATCHFILE2.BAT也可以,但可能会增加内存消耗,http://support.microsoft.com/kb/34768

相关内容