Batch file 当子字符串包含等号时,如何执行子字符串替换?

Batch file 当子字符串包含等号时,如何执行子字符串替换?,batch-file,cmd,Batch File,Cmd,在Windows批处理文件中,可以使用以下语法对变量执行搜索和替换: set myvar=%myvar:foo=bar% 然而,当“foo”或“bar”包含一个等号时,如何做到这一点?用^转义它似乎不起作用 谢谢。与其与cmd.exe的怪癖作斗争,不如改用vbscript Set objArgs = WScript.Arguments strOld=objArgs(0) strNew=objArgs(1) str=Replace(WScript.StdIn.ReadAll,vbCrLf,"")

在Windows批处理文件中,可以使用以下语法对变量执行搜索和替换:

set myvar=%myvar:foo=bar%
然而,当“foo”或“bar”包含一个等号时,如何做到这一点?用
^
转义它似乎不起作用


谢谢。

与其与cmd.exe的怪癖作斗争,不如改用vbscript

Set objArgs = WScript.Arguments
strOld=objArgs(0)
strNew=objArgs(1)
str=Replace(WScript.StdIn.ReadAll,vbCrLf,"")
WScript.Echo Replace(str,strOld,strNew)
将上述内容另存为replace.vbs

用法:

C:\test>echo test| cscript //nologo replace.vbs te mi
mist

或JScript或PowerShell或Perl或。。。。很多问题都应该得到“不要那样做,用这个来代替”类型的答案,我不认为这是其中之一。那么?如果OP对使用什么工具没有限制,他可以自由地采用他想要的任何解决方案。此外,我只是在说cmd.exe的局限性和怪癖的真相。实际上,我对脚本的功能有限制,因为它们将部署在客户服务器上的生产环境中。我同意这样做会很舒服。默认情况下,Windows计算机安装了vbscript。可能是的副本