windows – 批处理字符串连接
发布时间:2020-12-14 04:17:13 所属栏目:Windows 来源:网络整理
导读:我正在尝试创建这样的批处理字符串: abcd_ 我有一个名为soeid的变量,其值为abcd.所以这就是我正在做的事情,但它不起作用. set soeid=abcdset "val1="set "val2=_"set "str=%val1%%soeid%%val2%"echo %str% 我确定它工作得很好.为了证明这一点,在定义值后添
我正在尝试创建这样的批处理字符串:> abcd_
我有一个名为soeid的变量,其值为abcd.所以这就是我正在做的事情,但它不起作用. set soeid=abcd set "val1=>" set "val2=_" set "str=%val1%%soeid%%val2%" echo %str%
我确定它工作得很好.为了证明这一点,在定义值后添加SET STR,您将看到正确的值.
您遇到的问题是当您尝试回显该值时,正在执行的行变为:echo> abcd_. >没有引用或转义,所以它只是将ECHO的输出没有参数,并将其重定向到名为“abcd_”的文件 如果您不介意看到引号,那么更改您的行以回显“%str%”并且它将起作用. 另一种选择是启用和使用延迟扩展(我假设这是一个批处理脚本代码,而不是在命令行上执行) setlocal enableDelayedExpansion set soeid=abcd set "val1=>" set "val2=_" set "str=%val1%%soeid%%val2%" echo !str! 正常的%var%扩展在解释器解析该行的早期发生.延迟!var!扩展发生在执行之前的末尾.在中间的某处检测到重定向.这就是正常扩展不起作用的原因 – 解释器看到扩展的>字符并将其解释为输出重定向运算符.延迟扩展隐藏了>解释器中的字符,直到解析重定向. 有关延迟扩展的更多信息,请键入SET /?从命令行开始读取从以“最后,支持延迟环境变量扩展…”开头的段开始. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- Windows上的Nodejitsu
- windows-server-2012 – 启动徽标后的Windows Server 2012r
- 域控制器 – Windows Server 2008 R2功能级别 – DSQUERY
- winapi – Windows中的CBT钩子……“CBT”代表什么?
- xaml – 如何将控制高度数据绑定到另一个控件的高度?
- windows-server-2008 – 保护托管Windows 2008服务器免受DD
- 如何让WiX主要升级工作?
- windows-server-2003 – 在Amazon EC2上运行Windows域
- windows-server-2003 – Linux / Unix中的w命令是否有等效的
- 为Windows中的目录生成校验和
推荐文章
站长推荐
热点阅读