windows – 包含空格,双引号,管道的批处理文件参数
发布时间:2020-12-13 20:42:36 所属栏目:Windows 来源:网络整理
导读:我有一个批处理文件,需要传递一个包含管道和空格的参数.由于空格,在传入参数时需要将双引号附加到参数中.我需要去掉那些双引号并回显参数.通常情况下,使用?会让我这样做,但我认为我传入的具体参数会导致问题.如果我这样做: [test1.bat] call test2.bat "Acc
我有一个批处理文件,需要传递一个包含管道和空格的参数.由于空格,在传入参数时需要将双引号附加到参数中.我需要去掉那些双引号并回显参数.通常情况下,使用?会让我这样做,但我认为我传入的具体参数会导致问题.如果我这样做:
[test1.bat] call test2.bat "Account|Access Level|Description" [test2.bat] echo %1 echo %~1 并运行test1.bat,我得到这个输出: "Account|Access Level|Description" 'Access' is not recognized as an internal or external command,operable program or batch file. 那么如何删除双引号并仍然有一个可用的变量?
您可以使用延迟扩展,因为它不关心特殊字符.
唯一的问题是将参数内容放入变量中,因为它只能通过百分比扩展来传输. 但在你的情况下,这应该工作. @echo off setlocal DisableDelayedExpansion set "str=%~1" setlocal EnableDelayedExpansion echo !str! 备注,我先禁用延迟扩展,所以!和^不会被%1的扩展修改 编辑:可以禁用或启用延迟扩展 setlocal DisableDelayedExpansion setlocal EnableDelayedExpansion 如果启用,它会添加另一种扩展变量的方法(!variable!而不是%variable%),primary是为了防止变量的括号块效应(在set /?中描述). 但扩展着!变量!还会阻止任何进一步解析的内容,因为延迟扩展是批处理行解析的最后阶段. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- windows – 如何使用命令行建立套接字连接
- windows-phone-8.1 – 如何避免StorageFile.CopyAsync()在复
- 在Windows上的parLapply中使用Rcpp函数
- Windows SDK – C# – 调试进程退出,错误代码为-1073741502
- windows-server-2003 – 如何强制服务器上的打印机驱动程序
- 批处理文件 – Windows批处理(cmd.exe)命令行参数和字符串操
- 确定Windows进程是否具有创建符号链接的权限
- 是否可以在`tmuxinator`的`pre_window`中指定多个命令?
- 如何检测Windows移动设备是否有摄像头? C#
- window server 2008 iis7+php安装配置