将批处理文件中的参数发送到Jython/Python

将批处理文件中的参数发送到Jython/Python,python,batch-file,jython,sikuli,Python,Batch File,Jython,Sikuli,我写了一个Sikuli脚本(Jython)来测试一个网页。脚本中包含多个测试,这意味着当一个杀死sikuli时,之后的测试将不会运行。为了解决这个问题,我想通过批处理文件调用每个测试。因此,目前的设置与此类似: tests = [test1, test2, test3, test4] for test in tests: run test 显然,这是一个简化版本。。。所以我想做的是将列表转换成4个批处理文件。第一个批处理文件将使用test1作为参数调用脚本;第二个将test2作为参数发送

我写了一个Sikuli脚本(Jython)来测试一个网页。脚本中包含多个测试,这意味着当一个杀死sikuli时,之后的测试将不会运行。为了解决这个问题,我想通过批处理文件调用每个测试。因此,目前的设置与此类似:

tests = [test1, test2, test3, test4]

for test in tests:
  run test
显然,这是一个简化版本。。。所以我想做的是将列表转换成4个批处理文件。第一个批处理文件将使用test1作为参数调用脚本;第二个将test2作为参数发送,等等。然后我可以创建另一个批处理文件来迭代它们。但是,我不知道如何在批处理文件和jython之间通信,而只是简单地运行脚本

这个问题涉及批处理文件和jython脚本——我假设您必须在每个脚本中都做一些特殊的事情

任何帮助都将不胜感激


谢谢。

这个问题对我来说不是100%清楚。我想这就是答案:

首先,需要使用--args选项将一些参数传递给从批处理文件启动的Sikuli脚本,例如:

YourPath\runIDE.cmd -r YourPath\YourScript.sikuli --args test1 test2 someOtherOption
其次,必须使用sys.argv变量在脚本中接收它。它在Python或Jython中的工作原理相同。代码示例:

import sys
print sys.argv

for a in sys.argv:
    if a=="test1":
        print "Do something"
    elif a=="test2":
        print "Do something else"

这就是我要找的,谢谢。如果我要为每一个测试都有一个单独的批处理文件,那么我应该只包含一个测试作为参数吗?每个人都不一样。So:myPath\runIDE.cmd-r myPath\MyScript.sikuli--args test1