zoukankan      html  css  js  c++  java
  • 批处理(.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实战视频教程

     
  • 相关阅读:
    use paramiko to connect remote server and execute command
    protect golang source code
    adjust jedi vim to python2 and python3
    install vim plugin local file offline
    add swap file if you only have 1G RAM
    datatables hyperlink in td
    django rest framework custom json format
    【JAVA基础】网络编程
    【JAVA基础】多线程
    【JAVA基础】String类的概述和使用
  • 原文地址:https://www.cnblogs.com/ojbk6943/p/14047336.html
Copyright © 2011-2022 走看看