在bat中调用不同文件夹下的bat问题,在每个bat中执行具体命令时,都应该加上"%~dp0"来明确相对于被执行的那个bat的目录。
比如在Desktop中新建一个icf.bat文件,一个startup文件夹(内含startup.bat文件),一个icf文件夹(内含in_icf.bat文件)。
三个文件的内容分别为:
rem icf.bat
@echo on
dir > icf.bat.log
call ./startup/startup.bat
rem -----------------------------------
rem startup.bat
@echo on
dir "%~dp0" > "%~dp0/startup.bat.log"
call "%~dp0../icf/in_icf.bat"
rem ------------------------------------
rem in_icf.bat
@echo on
dir "%~dp0" > "%~dp0/in_icf.bat.log"
执行icf.bat文件,应在Desktop、startup、icf文件夹中分别生成一个log文件,记录着各自目录中的dir结果。
其他常用路径:
echo 当前盘符:%~d0
echo 当前盘符和路径:%~dp0
echo 当前批处理全路径:%~f0
echo 当前盘符和路径的短文件名格式:%~sdp0
echo 当前CMD默认目录:%cd%
浙公网安备 33010602011771号