通过批处理文件向Python脚本传递多个参数

4
我在批处理文件中有以下代码。
@ECHO OFF
SET /P NAME=Enter name:
SET /P GENDER = Enter age:
SET /P AGE = Enter gender:
python test.py %NAME% %GENDER% %AGE%
PAUSE

这是test.py文件中的代码

import sys

print len(sys.argv)

for arg in sys.argv:
    print arg

这是输出结果。
Enter name:Dodo
Enter age:1
Enter DB gender:M
2
test.py
Dodo
Press any key to continue . . .

我正在使用Python2.5。 如何传递年龄和性别?我对Python和批处理编程都很新,所以请对我宽容些 :)


3
为什么不直接用Python编写整个程序呢?让程序提示输入即可。 - Keith
谢谢 :) 我会尝试一下,但是能用这种方式做吗? - Jacob George
2个回答

5

在使用set时,不要在=周围使用空格:

SET /P NAME=Enter name:
SET /P GENDER=Enter age:
SET /P AGE=Enter gender:

否则,你将得到一个以空格结尾的变量,并且你需要像这样使用它:%GENDER %

1

尝试用引号括起来。你在等号旁边有一个空格,不确定这是否会影响批处理...

空格:

SET /P GENDER = Enter age:
SET /P AGE = Enter gender:

而且没有任何一个:

SET /P NAME=Enter name:

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接