我正在尝试创建一个批处理文件,该文件传递一个带有换行符的字符串,但它没有用完.字符串的延续作为新命令执行.
无论如何编码换行或使其工作?
我有一个简单的python脚本,如下所示:
import sys
lines = sys.argv[1]
for line in lines.splitlines():
print line
Run Code Online (Sandbox Code Playgroud)
我想从命令行(或.bat文件)调用它,但第一个参数可能(并且可能会)是一个包含多行的字符串.怎么做到这一点?
当然,这有效:
import sys
lines = """This is a string
It has multiple lines
there are three total"""
for line in lines.splitlines():
print line
Run Code Online (Sandbox Code Playgroud)
但我需要能够逐行处理一个参数.
编辑:这可能是一个Windows命令行问题而不是Python问题.
编辑2:感谢所有好的建议.它看起来不太可能.我不能使用另一个shell,因为我实际上试图从另一个程序调用脚本,该程序似乎在幕后使用Windows命令行.
我加载了一个小型控制台应用程序,它只是读取并打印传递给程序的第一个命令行参数到控制台.
我想将换行符传递给我试过的参数:
prog.exe \n --> outputs \n
prog.exe "sfs \n sfff" --> outputs sfs \n sfff
prog.exe "ff \\n ff" --> outputs ff \\n ff
prog .exe "ff \\\\n ff" --> outputs ff \\\\n ff
Run Code Online (Sandbox Code Playgroud)
是否有其他逃避我想使用?或者是否有一些函数我必须调用args [0]来处理转义字符才能将其输出到控制台?
为了澄清,我正在尝试将一个字符串传递给我的程序,该程序中包含换行符.输出到控制台被用作测试.我可以轻松插入调试中断行并检查变量的内容.