【发布时间】:2016-06-22 14:24:53
【问题描述】:
我有 2 个脚本。一个是 .bat,另一个是 python。 python 脚本由 .bat 文件触发。执行时,首先我将使用命令行参数运行 .bat,然后我需要将参数读入 python 脚本。
我做错了什么?
我这样调用批处理脚本:
C:>main.bat c:\temp\text1.txt
main.bat:
@ECHO off
set var1=%~1
call python_script.bat
echo "returned to main"
pause
python_script.bat:
python -x %0 %*
print var1 # Notworking
import sys
var1 = sys.argv ############ Also not working
with open(var1, 'r+') as f:
content = f.read()
f.seek(0)
f.trunca........
【问题讨论】:
-
sys.argv是一个列表。第一个元素是脚本本身的名称,第二个元素是第一个命令行参数。你为什么不简单地将你的 python 放在一个 script_name.py 文件中,然后从你的 .bat 文件中调用 python script_name.py 呢?相关问题:stackoverflow.com/questions/1013246/… -
我还有 2 个要调用的脚本......而且,我只需要 python 的命令行参数......和 bat 脚本。第一个触发器将使用 .bat。这真的可能吗??
-
但是,从 main.bat 到 python_script.bat 不传递 var1,是两个“实例”
-
脚本不是使用同一个文件吗? (c:\temp\text1.txt) 在这种情况下,您不能简单地将命令行参数硬编码到 bat 文件中的 python 脚本,而不是尝试将 args 从 bat 传递到 py 吗?虽然我不在 Windows 上,所以我无法真正测试它。
-
No.. 实际上,(c:\temp\text1.txt) 就是一个例子。用户不知道这条路径。路径将与 .bat 文件一起作为命令行参数给出。并且python需要阅读它
标签: python batch-file cmd