2015-08-28 90 views
1

我想执行一个python脚本字符串直接从命令提示符处输入Windows在Windows命令提示符处使用'python -c'选项

所以经过一番谷歌搜索,我发现python -c选项。

我做到了,

python -c 'print "Hello"' 

但它给下面的错误,

File "<string>", line 1 
    'print 
     ^
SyntaxError: EOL while scanning string literal 

同样的命令在Ubuntu的做工精细,它打印

hello 

我怎么能执行直接在Windows命令提示符下使用python命令?

+1

您在Windows中使用的是哪个版本的python? – Chaker

+0

我在Windows中使用'2.7.9',在Ubuntu中使用'2.7.6' ... – Codebender

+1

如果你是从cmd.exe运行它,请翻转引号。 'python -c“print'Hello'”'。 – eryksun

回答

3

在Windows上,反转引号以引用带有双引号的-c参数,例如, python -c "print 'Hello'"

命令行由python.exe中的C运行时启动代码进行分析,该代码遵循Parsing C++ Command-Line Arguments中列出的规则。另外,cmd.exe通常会忽略双引号字符串中的许多特殊字符(%除外)。例如,python -c 'print 2 > 1'不仅不被Python解析,而且cmd.exe将stdout重定向到名为1'的文件。相反,python -c "print 2 > 1"正常工作,即它打印True

一个问题是处理命令行上的%字符,例如, python -c "print '%username%'"。如果您不希望环境变量通过cmd.exe进行扩展,则可以使用%^跳过%之外的引号。 ^字符是cmd的转义字符,所以你会期望它是另一种方式,即^%。但是,cmd实际上并不使用^来转义%。相反,它会阻止将其作为环境变量与username%进行分析。这要求在以下部分引用-c参数:python -c "print '"%^"username%'"。在这种特殊情况下,由于命令的其余部分没有空格或特殊字符,因此可以更简单地写成python -c "print "'%^username%'

相关问题