小保哥

博客园 首页 新随笔 联系 订阅 管理

在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%





posted on 2012-12-06 11:00  小保哥  阅读(371)  评论(0)    收藏  举报