批处理(.bat)文件中找不到文件等路径问题

批处理文件在执行时,其相对路径基于bat文件所在目录。如果在非bat文件目录下运行,可能会找不到文件。解决方法包括将bat脚本放入项目目录或使用'cd/d%~dp0'命令切换到批处理文件的目录。这样做可以确保无论在哪里运行,批处理都能正确找到文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

批处理(.bat)文件中找不到文件等路径问题

一般来说,批处理文件处理相对路径的时候,起始位置是bat文件所在的目录,比如在D:\XX目录下执行bat文件,所有相对目录的操作都会以D:\XX下执行。也就是你在phcharm中能运行的程序在bat脚本里启动会出错,因为bat文件里默认是以该bat文件所在的目录为起始目录的,你以前用的相对路径能找到你想找的文件,但是你在bat中就找不到了。还有,有些命令需要管理员权限,右键选择以管理员身份运行时后,起始位置则为C:\Windows\system32,这时候往往不是我们所想要的,

解决办法1:

把你写的BAT脚本放到你python项目所在目录里,具体放在哪个位置,要看你的项目文件夹结构了。

解决办法2:

是在批处理的行首加一句"cd D:\XX”进入该目录,以修改其当前位置,但这样需要在批处理文件中加入绝对路径,如果把bat文件移动到其它位置就无法使用了,此时一种更好的方式是:

用 "cd /d %~dp0” 代替 "cd D:\XX”

cd /d %~dp0 意思是 更改当前目录为批处理本身的目录

综上所述,在写bat文件的时候,不管是否需要用到管理员权限,最好在行首加一句"cd /d %~dp0",以统一文件的起始目录。

例如,Auto.bat处于文件夹d:\my_bat\下,以下为Auto.bat的内容

cd /d %~dp0
start MDF-API\FeedServer\FeedServerV1_3.exe

代表启动“d:\my_bat\MDF-API\FeedServer\FeedServerV1_3.exe”这个程序

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值