如何在Windows批处理文件中构建多行Python字符串字面量
批处理中传递多行Python脚本给
python -c的解决方案 你之前的proposal-1.bat无效的核心原因:把Python代码拆成多个带引号的片段后,批处理会将每个片段视为独立的命令行参数。而python -c仅会把第一个参数作为执行代码,后续参数会被当作脚本的命令行参数(存入sys.argv),实际只执行了import math,因此没有输出。
以下是两种可行的解决方案:
方案1:单引号对包裹多行代码
批处理允许未闭合的双引号跨多行,整个引号内的内容会被作为一个完整参数传递给python -c,Python能正确解析包含换行的代码。
创建multi-line.bat,内容如下:
python -c "import math print( math.hypot( 3, 4) )"
执行该批处理,会输出5.0,与单行版结果一致。
方案2:用批处理变量存储多行代码(适配特殊字符场景)
如果代码中包含%这类批处理特殊字符,可借助延迟扩展变量存储代码,避免繁琐的转义操作:
@echo off setlocal enabledelayedexpansion set "code=import math" set "code=!code! print( math.hypot( 3, 4) )" python -c "!code!"
注意:变量赋值时,后续行的代码需顶格书写,不要添加多余空格,否则会引入无效字符导致Python执行报错。
内容的提问来源于stack exchange,提问作者Gus
相关产品推荐
相关产品推荐

