2010-09-28 135 views
4

在Windows批处理文件,你可以使用这个语法来进行搜索&的变量替换:如何在子字符串包含等号时执行子字符串替换?

set myvar=%myvar:foo=bar% 

如何然而做到这一点,当“富”或“ - ”包含等号?用^转义它似乎不起作用...

谢谢。

+1

可能重复的[逃逸一个等于在DOS批处理字符串替换命令符号(http://stackoverflow.com/问题/ 2499646/escaping-an-equal-sign-in-dos-batch-string-replacement-command) – 2010-09-28 14:39:31

回答

1

而不是与cmd.exe的怪癖对抗,为什么不使用vb​​script呢?

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 
+0

或者JScript或者PowerShell或Perl或者....很多问题都值得“不要这样做,使用这反而“键入答案,我不认为这是其中之一。 – 2010-09-28 14:38:36

+0

那么?如果OP对使用什么工具没有限制,他可以自由采用他想要的任何解决方案。另外,我只是讲了cmd.exe限制和怪癖的真相。 – ghostdog74 2010-09-28 14:49:16

+0

其实,我对我的脚本可能执行的操作有限制,因为它们将部署在客户服务器上的生产环境中。我同意这会很舒服。 – Benoit 2010-09-28 15:25:49

相关问题