读取从批处理文件传递到python脚本的字符串参数

问题描述 投票:-1回答:3

我已经看到多个关于传递字符串的帖子,但是无法在读取从批处理文件传递给python脚本的字符串时找到好的解决方案。这是我的问题。

我从批处理文件调用python脚本并传递参数。

string_var = "123_Asdf"

bat 'testscript.py  %string_var%'

我在我的python代码中有以下内容。

import sys

passed_var = sys.argv[1]

当我运行上面的代码时,我总是看到下面的错误。

passed_var = sys.argv[1]
IndexError: list index out of range

有没有人见过这个问题?我只传递字符串并期望它作为我传递给脚本的第一个参数的一部分被读取。

python batch-file parameter-passing
3个回答
0
投票

试试这个:

import sys
for x,parameter in enumerate(sys.argv):
    print(x, parameter)

0
投票

如果我已正确阅读您的问题及其格式,我认为您的.bat文件应为:

Set string_var="123_Asdf"
"D:\BuildTools\tools\python27\python.exe" testscript.py %string_var%

或者更好的是:

Set "string_var=123_Asdf"
"D:\BuildTools\tools\python27\python.exe" testscript.py "%string_var%"

%string_var%可以带或不带双引号。


0
投票

您的批处理文件应该更简单一点,确保正确设置PATH,否则这将无效。

python testscript.py [argument]
© www.soinside.com 2019 - 2024. All rights reserved.