[問題] 封包好的exe檔如何不指定路徑在cmd執行
大家好,請跟大家請教一下
先說一個實際範例,小弟我在跑abaqus的inp檔的時候,我可以編輯一個bat檔
內容是:call abaqus j=INPNAME
只要該bat檔跟INPNAME檔在同一個資料夾,當我執行bat檔時,bat會啟動cmd然後執行
abaqus 去讀INPNAME檔。
從這個範例來看,我不需要特地在bat檔裡面編輯cd/d INP所在的路徑
便可以讓cmd知道我目前的路徑並且告訴abaqus。
現在,小弟用python編寫了一個計算工具,並封包成exe檔。
計算過程類似abaqus這樣,執行該exe檔時載入一個txt檔案,然後完成我想要的計算。
如果我想要用bat去執行該exe檔,我必須要在bat檔作一個指定路徑的命令。
EX:
cd/d EXENAME 路徑
call EXENAME
我如何仿照abaqus這樣,不需要特地輸入 cd/d EXENAME這樣的命令,讓他知道我的路徑
就是bat檔本身所在的位置並且告訴 EXENAME 呢??
拜託大大們建議做法或參考資料。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.248.190.37
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1548898838.A.91D.html
→
01/31 10:19,
5年前
, 1F
01/31 10:19, 1F
bat只有這樣的內容的話,cmd會跳出不是內部或外部的執行檔,找不到EXENAME
我必須先在前面加一行 「cd/d EXENAME所在路徑」,如何省略這行也能讓cmd知道我要
執行EXENAME。
另外就是我要如何修改原始EXENAME的PYTHON檔,讓EXENAME知道我要讀的txt檔案路徑
就是bat檔所在的路徑。
有部分我沒說清楚,EXENAME所在路徑叫A路徑,bat與txt檔案所在路徑同為B路徑,A
路徑與B路徑不相同
※ 編輯: caron0225 (60.248.190.37), 01/31/2019 12:35:39
→
01/31 19:05,
5年前
, 2F
01/31 19:05, 2F
→
01/31 19:05,
5年前
, 3F
01/31 19:05, 3F
→
01/31 19:09,
5年前
, 4F
01/31 19:09, 4F
→
01/31 19:10,
5年前
, 5F
01/31 19:10, 5F
→
01/31 19:11,
5年前
, 6F
01/31 19:11, 6F
→
01/31 19:12,
5年前
, 7F
01/31 19:12, 7F
→
01/31 19:12,
5年前
, 8F
01/31 19:12, 8F
→
01/31 19:14,
5年前
, 9F
01/31 19:14, 9F
→
01/31 20:09,
5年前
, 10F
01/31 20:09, 10F
→
01/31 20:12,
5年前
, 11F
01/31 20:12, 11F
→
01/31 20:12,
5年前
, 12F
01/31 20:12, 12F
→
01/31 20:15,
5年前
, 13F
01/31 20:15, 13F
感謝兩位大大的回答,已經解決我目前問題了!!
首先在windows的環境變數中去加入我的EXENAME路徑。
那麼在cmd中,不論在何種路徑下,都能執行EXENAME。
接著在EXENAME的原始python代碼中,透過os.getcwd()可以抓到我目前的工作路徑。
原本我一直以為os.getcwd()給的路徑指的是EXENAME的所在路徑,其實是指當前OS的
工作路徑,誤會很久了O_Q
感謝兩位大大們的回覆!!
※ 編輯: caron0225 (60.248.190.37), 02/01/2019 10:16:32
題外話,我在windows的環境變數中,並沒有看到abaqus在裡面,abaqus 是怎麼作到
不需要事前cd到執行檔所在路徑就可以執行呢?
是我在安裝abaqus軟體時,安裝檔把路徑給登錄到windows我看不到的地方嗎??
※ 編輯: caron0225 (60.248.190.37), 02/01/2019 10:31:30
→
02/01 16:13,
5年前
, 14F
02/01 16:13, 14F
→
02/01 16:14,
5年前
, 15F
02/01 16:14, 15F
Python 近期熱門文章
PTT數位生活區 即時熱門文章