我使用以下语法引用与批处理脚本相同的文件夹中的其他文件: CALL%0 .. \ SecondBatch.cmd,这适用于Windows 2003服务器,但不适用于2008服务器。任何想法都欢迎
答案 0 :(得分:0)
您是否以管理员身份启动了脚本(这会将目录更改为system32)?尝试使用:
"%~dpfs0\SecondBatch.cmd"
因此,您将使用完整路径调用第二个.bat。
答案 1 :(得分:0)
在正在运行的批处理的同一目录中调用另一个批处理文件的正确方法应该是
@echo off
setlocal enableextensions
rem This is first.cmd , Let's call second.cmd
call "%~dp0\second.cmd"
但可能存在问题。如果first.cmd已使用引号调用,并且在first.cmd内部当前驱动器已更改,引用%~dp0
应返回当前批处理文件的路径fails。
如果是这种情况,可以使用此类构造
@echo off
setlocal enableextensions
rem This is first.cmd , Let's call second.cmd
call :getScriptPath folder
call "%folder%\second.cmd"
exit /b
:getScriptPath returnVar
set "%~1=%~dp0"
goto :EOF