[问题] 封包好的exe档如何不指定路径在cmd执行

楼主: caron0225 (淯仔)   2019-01-31 09:40:36
大家好,请跟大家请教一下
先说一个实际范例,小弟我在跑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 呢??
拜托大大们建议做法或参考资料。
作者: BZnoo (Uba)   2019-01-31 10:19:00
call EXENAME ./文字档.txt
作者: justoncetime (台北丛林好冷~)   2019-01-31 19:05:00
bat是在OS上执行,要能任意地方都能跑urexe当然是OS解决,一般是去设定path.如会先cd到bat位置,那就是os.getcwd()现工作目录如果想知道py自己位置os.path.realpath(__file__)我是g: get curreny py file location, 当然另外要有操作OS的观念,遇到问题才能选择比较万用的方式.尤其是你的程式要丢给别人用的时候还要弄清相对/绝对路径
作者: BZnoo (Uba)   2019-01-31 20:09:00
其实只要在bat档里指定EXENAME的绝对路径就行了,余相同第一行不要只 call //somedir1/somedir2/EXENAME ./某.txt因为你执行时是在bat所在 ./某.txt 当然是被引用得到的噜//指的是根目录 若不同碟(区?)则前面要加上其名之类 查一下
作者: justoncetime (台北丛林好冷~)   2019-02-01 16:13:00
docs.microsoft.com/windows/desktop/shell/app-registration 好像是这个吧(自己并路径吧)

Links booklink

Contact Us: admin [ a t ] ucptt.com