我用的是这个代码:
在测试.py公司名称:
cmd_line = str('C:\mybat.bat') + " "+str('C:\')+" "+str('S:\Test\myexe.exe')+" "+str('var4')+" "+str('var5')+" "+str('var6')+" "+str('var7')+ " "+str('var8') + " "+str('var9')+ " "+ str('var10')
process = subprocess.Popen(cmd_line, stdin=PIPE, stderr=None, stdout=None, shell=True)
process.communicate()
retcode = process.returncode
在我的蝙蝠.bat公司名称:
^{pr2}$它在参数“var10”之前工作正常,因为我不知道为什么bat对%1取相同的值,而不是对%10取相同的值,如下所示:
... >cd /d C:\
C:\> S:\Test\myexe.exe var4 var5 var6 var7 var8 var9 C:\0
我想读最后一个参数var10,而不是C:\0,因为bat取var1的值,只加0,但它应该是var10。在
谢谢你!在
批处理文件只支持
%1
到%9
。要读取第10个参数(以及下一个参数和下一个参数),必须使用命令(可能多次)这会改变参数:
},等等:
^{pr2}$10th
参数到%9
,%9
到{(x表示原始的
%0
现在不可访问,因此如果需要,必须在shift
语句之前使用它现在可以使用
10th
参数作为%9
,第9个参数作为%8,依此类推。在因此,请更改批处理文件:
为了结束这个问题,我决定只使用一个长参数,因为参数可以是可选的,而且我无法找到向bat发送空参数的方法。shift命令可以工作,但是如果你有固定数量的参数,在我的例子中,参数的数量可以是6,8,12,可以改变,那么,我现在使用的代码是:
在测试.py在
在我的蝙蝠.bat在
^{pr2}$“%parameters%”中的引号将丢弃变量%3附带的引号,请记住:“”以转义批处理文件中的双引号。在
相关问题 更多 >
编程相关推荐