在处理很多批处理命令时,我们都需要获取当前所在目录,以便进行相关的处理。在批处理中使用管理员权限运行的时候系统会认为当前路径是C:\Windows\System32,而使用非管理员权限安装的时候系统会认为当前路径就是批处理文件所在的路径,所以我们最好使用绝对路径去操作文件。
以下是绝对路径的获取方式:
- @echo off
- echo 当前盘符:%~d0
- echo 当前盘符和路径:%~dp0
- echo 当前批处理全路径:%~f0
- echo 当前盘符和路径的短文件名格式:%~sdp0
- echo 当前CMD默认目录:%cd%
- pause
将以上代码另存为一个bat文件,运行下看看,选取一个想要的命令。
%cd% 获取当前执行批处理的cmd目录(权限不同目录不同),管理员权限运行目录则为system32
%~dp0 获取当前目录路径
%windir% 获取windows目录路径
%~d0 获取当前盘符
%~sdp0 获取当前盘符和路径的短文件名格式
%~f0 获取此批处理的路径
注意:
如果路径包括空格最好加上双引号。