2015-08-28 91 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%'

相關問題