我将尝试解释我的问题:
例如:
问题是 :
当我启动master.bat时,当前路径是“ D:\ Master \”。然后,当执行slave_01.bat时,它将尝试从“ D:\ Master \”而不是从“ D:\ Master”启动setup_01.exe。 \奴隶\”
REM Master.bat
@ECHO OFF
TITLE Installing Applications
SET mypath=%~dp0
ECHO %mypath:~0,-1%
ECHO.
ECHO 1) Installing App 1
ECHO.
call D:\Master\Slave_01\slave_01.bat"
ECHO.
ECHO 2) Installing App 2
ECHO.
CALL D:\Master\Slave_02\slave_02.bat"
PAUSE
slave_0x文件:
REM slave_01.bat
TITLE App 1
ECHO.
ECHO %mypath:~0,-1%
ECHO.
ECHO Installing App 1
ECHO Please wait...
START /wait setup_01.exe /SILENT /SP- /NORESTART
有没有一种方法可以使用slave_0x.bat文件中的当前目录,而不是slave_0x.bat中master.bat文件中的当前目录,从正确的目录中启动setup_0x.exe文件?
问候
要启动其他目录中的可执行文件,请将相对路径添加到START
命令中。使用%~dp0
来获得当前正在运行的批处理文件的路径。
START /wait %~dp0\setup_01.exe /SILENT /SP- /NORESTART
这将启动可执行文件,但不会更改进程当前目录。
如果您的可执行文件依赖于当前目录,那么您将需要首先cd
进入该目录。临时更改目录的最简单方法是pushd
和popd
。
pushd %~dp0
START /wait setup_01.exe /SILENT /SP- /NORESTART
popd
注意:如果路径名或可执行文件名可以包含空格,则按如下所示将可执行文件名放在引号中(包括必需的虚拟引号)
START /wait "" "%~dp0\setup_01.exe" /SILENT /SP- /NORESTART
这是使用batchSTART
命令的常见陷阱。请参阅如何在Windows中使用带有路径的“开始”和带有空格的命令来创建批处理文件
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句