在 Windows 命令提示符中使用 'python -c' 选项
Using 'python -c' option in Windows command prompt
我想在 Windows.[= 中直接从命令提示符执行 python 脚本 string 16=]
所以在谷歌搜索后,我找到了 python -c
选项。
我做到了,
python -c 'print "Hello"'
但它给出了以下错误,
File "<string>", line 1
'print
^
SyntaxError: EOL while scanning string literal
相同的命令在 Ubuntu 中运行良好,它打印
hello
如何在 windows 命令提示符中直接执行 python 命令?
在 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%'
.
我想在 Windows.[= 中直接从命令提示符执行 python 脚本 string 16=]
所以在谷歌搜索后,我找到了 python -c
选项。
我做到了,
python -c 'print "Hello"'
但它给出了以下错误,
File "<string>", line 1
'print
^
SyntaxError: EOL while scanning string literal
相同的命令在 Ubuntu 中运行良好,它打印
hello
如何在 windows 命令提示符中直接执行 python 命令?
在 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%'
.