bat-安装程序-切换路径的问题(小坑)

当批处理以管理员身份运行时,默认的cmd路径是 C:\Windows\system32

如果在批处理所在目录下存放了一些 安装程序,使用bat安装程序时,bat去执行时 不会去当前目录去找 exe文件,而是去默认的cmd路径寻找,提示不是内部命令;dir也会遍历 默认的cmd路径

方法1: 使用扩展变量 切换一下
%~d0 获取当前盘符
%~dp0 获取当前批处理文件所在盘符和路径
%cd% 获取当前cmd默认路径

可以使用 cd %~dp0 切换一下 切到 当前目录

@echo off 

echo %~d0 获取当前盘符
echo %~dp0 获取当前批处理文件所在盘符和路径
echo %cd% 获取当前cmd默认路径

cd %~dp0

echo %~d0 获取当前盘符
echo %~dp0 获取当前批处理文件所在盘符和路径
echo %cd% 获取当前cmd默认路径

pause

image

这种办法 在批处理所在路径是 C盘的时候 不会出问题,但是 如果一旦当前 批处理所在路径是D盘 E盘 就不行了,就需要在前面加一个%~d0,不知道为啥 前面写的批处理没出现过这个问题。
image

方法2:

资源路径可以使用 扩展变量 去拼接,路径少的时候 可以,多了的话 拼接路径会有点麻烦


好吧使用cd命令的/d选项可以避免这个问题

posted @ 2022-06-23 00:29  姬雨晨  阅读(700)  评论(0编辑  收藏  举报