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

我在做一个PYQT5界面程序时,程序做好了,在pycharm中运行正常,在dos窗口中使用 python  D:vlsmain.py也运行正常,但是做了个bat 启动脚本后就打不开了,提示找不到文件,后来看到了下面的文章才解决了

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

解决办法1:

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

解决办法2:没试过

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

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

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

cd /d %~dp0
start MDF-APIFeedServerFeedServerV1_3.exe

代表启动“d:my_batMDF-APIFeedServerFeedServerV1_3.exe”这个程序

这个问题是我在用pyqt5开发一个在线设备扫描界面工具时遇到的,后来用上面的方法解决了,问题的本质是路径问题,可能你在pycharm中调试时没有问题,但是打包成exe时就有问题了;
有对pyqt5开发GUI图形界面工具感兴趣的同学,可以进一步交流,欢迎关注公众号“测试运维”,领取免费pyqt5实战视频教程

 
原文地址:https://www.cnblogs.com/ojbk6943/p/14047336.html