在同一个文件夹赢得2008年的其他批次的Rafer

时间:2013-11-27 11:26:50

标签: windows batch-file cmd

我使用以下语法引用与批处理脚本相同的文件夹中的其他文件:   CALL%0 .. \ SecondBatch.cmd,这适用于Windows 2003服务器,但不适用于2008服务器。任何想法都欢迎

2 个答案:

答案 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