batch-file – 如何在Windows批处理文件中将双引号行拆分为多行
发布时间:2020-12-13 20:45:04 所属栏目:Windows 来源:网络整理
导读:Windows批处理文件中的长命令可以使用^如 Long commands split over multiple lines in Windows Vista batch (.bat) file中提到的那样拆分为多行。 但是,如果插入符号位于双引号字符串中,则不起作用。例如: echo "A very long line I want to ^split into
Windows批处理文件中的长命令可以使用^如
Long commands split over multiple lines in Windows Vista batch (.bat) file中提到的那样拆分为多行。
但是,如果插入符号位于双引号字符串中,则不起作用。例如: echo "A very long line I want to ^ split into two lines" 这将打印“我想要的非常长的行^并告诉我split是一个未知的命令。 有办法解决这个问题吗?
我看到三种可能的解决方法。
1)构建组合多个参数的线。 @echo off SETLOCAL EnableDelayedExpansion set "line=" for %%a in ("line1" "line2" "line3" "line4" ) do set line=!line!%%~a echo !line! 2)在每行末尾留下“引用” @echo on SETLOCAL EnableDelayedExpansion set "line=line1 & x#"^ "line2 & a#"^ "line3 & b #"^ "line4 & c " set "line=!line:#" "=!" echo !line! 每行中的第一个空格很重要,因为插入符号用作多行字符但它也会转义第一个字符,因此引用也会被转义。 编辑补充:3)消失的报价 setlocal EnableDelayedExpansion echo "A very long line I want to !"=!^ split into two lines" 在我看来,这是最好的方法,它的工作原理是解析器首先看到引号,因此最后的插入符号将起作用,因为它似乎在引号之外。 您还可以创建安全表达式,如果行中有引号,它们将始终脱离引号,独立。 echo This multiline works !"^"=!^ as expected echo "This multiline works !"^"=!^ too" 如果你想避免延迟扩展,你也可以使用-FOR-Loop之类的 for %%^" in ("") do ( echo "This multiline works %%~"^ too" ) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 在Win10上,Android Studio检测不到设备的解决方案
- 09、组策略之软件分发(06)
- windows-server-2008-r2 – 如何确定哪个SMB客户端/会话在S
- windows配置kafka环境 (依赖zookeeper,kafka内置)
- 与Windows 10的初始RDP连接缓慢连接
- msbuild调用Windows 7下的powershell脚本获取签名错误
- 在windows下用winsw把nginx当成服务运行
- windows-server-2008 – Windows事件日志转发
- 从Windows Server 2008 R2上的软件RAID 1引导
- windows-server-2008 – 在多台Windows机器上安装CA证书(IE