Python:在windows上执行复杂命令

Python:在windows上执行复杂命令,python,windows,command-line,python-fu,Python,Windows,Command Line,Python Fu,我在Windows上运行命令时遇到了一个问题,而它在Linux上运行得非常好 我给出了上下文,但这并不是理解我的问题所必需的:我在批处理模式下使用gimp 我有一个Python脚本pythonfuscript.py,它调用另一个Python脚本pythonFu.py,它执行Python调用 在callPythonFuScript.py中,我在调用pythonFu.py中要执行的函数时构造了命令行。这是命令行: gimp-console-2.8 -idf --batch-interpreter p

我在Windows上运行命令时遇到了一个问题,而它在Linux上运行得非常好

我给出了上下文,但这并不是理解我的问题所必需的:我在批处理模式下使用gimp

我有一个Python脚本pythonfuscript.py,它调用另一个Python脚本pythonFu.py,它执行Python调用

在callPythonFuScript.py中,我在调用pythonFu.py中要执行的函数时构造了命令行。这是命令行:

gimp-console-2.8 -idf --batch-interpreter python-fu-eval -b 'import sys;sys.path=['.']+sys.path;import pythonFu;pythonFu.myFunction("arg1","arg2","arg3") ' -b 'pdb.gimp_quit(1)'
这个命令在Linux上运行得很好,但当我尝试在Windows上运行它时,它不起作用

错误消息包括:

The opening of C:\Users\myRep\sys; failed : no such file or directory
The opening of C:\Users\myRep\sys.path=['.']+sys.path; failed : no such file or directory
The opening of C:\Users\myRep\"arg1","arg2","arg3")' failed no such file or directory

我假设Windows对字符的解释与Linux不同。这是正确的吗?如何解决此问题?

如注释中所述,在命令提示符视为参数的内容与作为python文本字符串传递给eval的内容之间存在转义问题:

-b 'import sys;sys.path=["."]+sys.path;import pythonFu;pythonFu.myFunction("arg1","arg2","arg3")'
如果仍然出现错误,则可能需要转义双引号:

-b 'import sys;sys.path=[\".\"]+sys.path;import pythonFu;pythonFu.myFunction(\"arg1\",\"arg2\",\"arg3\")'

如注释中所述,在命令提示符视为参数的内容与作为python文本字符串传递给eval的内容之间存在转义问题:

-b 'import sys;sys.path=["."]+sys.path;import pythonFu;pythonFu.myFunction("arg1","arg2","arg3")'
如果仍然出现错误,则可能需要转义双引号:

-b 'import sys;sys.path=[\".\"]+sys.path;import pythonFu;pythonFu.myFunction(\"arg1\",\"arg2\",\"arg3\")'

在命令行中将“替换为”是否有帮助?否。如果你知道一点pythonfu-b执行一个命令,那么第一个命令在任何情况下都不起作用;sys.path=['.]+sys.path;importpythonFu;pythonFu.myfunctorg1,arg2,arg3'但是第二个可以工作ie-b'pdb.gimp_quit1'谢谢你的回答还有其他想法吗?在命令行中用替换'有帮助吗?没有。如果你知道一点pythonfu-b执行一个命令,那么第一个命令在任何情况下都不起作用;sys.path=['.]+sys.path;importpythonFu;pythonFu.myFunctionarg1,arg2,arg3'但是第二个可以用ie-b'pdb.gimp_quit1'谢谢你的回答还有其他想法吗?谢谢jdi,但它仍然不起作用,这是一个很好的解决方案,可以避免python用双引号犯错误。但是正确的字符串ie-b'import sys;sys.path=[.]+sys.path;进口蟒蛇;myFunctionarg1、arg2、arg3'被提供给windows命令行,它对双引号的解释与shell不同。我假设这就是问题所在,但我不知道如何纠正它。我认为第一步是正确的,但现在我必须让windows很好地解释python的giben字符串再次感谢,Victor为了找到你的方法,我首先要破解一个python脚本,它只将argv打印到stdout。然后,您可以通过比较输入和脚本输出来使用windows命令行处理。感谢jdi,但它仍然不起作用,这是一个很好的解决方案,可以避免python在使用双引号时出错。但是正确的字符串ie-b'import sys;sys.path=[.]+sys.path;进口蟒蛇;myFunctionarg1、arg2、arg3'被提供给windows命令行,它对双引号的解释与shell不同。我假设这就是问题所在,但我不知道如何纠正它。我认为第一步是正确的,但现在我必须让windows很好地解释python的giben字符串再次感谢,Victor为了找到你的方法,我首先要破解一个python脚本,它只将argv打印到stdout。然后,您可以通过比较输入和脚本输出来使用windows命令行处理。