批處理(.bat)文件中找不到文件等路徑問題


我在做一個PYQT5界面程序時,程序做好了,在pycharm中運行正常,在dos窗口中使用 python  D:\vls\main.py也運行正常,但是做了個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”。

 綜上所述,在寫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”這個程序

 

這個問題是我在用pyqt5開發一個在線設備掃描界面工具時遇到的,后來用上面的方法解決了,問題的本質是路徑問題,可能你在pycharm中調試時沒有問題,但是打包成exe時就有問題了;
有對pyqt5開發GUI圖形界面工具感興趣的同學,可以進一步交流,歡迎關注公眾號“測試運維”,領取免費pyqt5實戰視頻教程

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM