假设我们有一个变量,例如;
set test=This is a Test string.
我们想要替换每个小写字母t
与大写X
如此期望的输出;
This is a TesX sXring.
我尝试使用字符串操作set test=%test:t=X%
但它取代了每一个t
with X
。我也尝试过来自@dbenham,但无法解决。
没有可以方便地进行区分大小写的字符串操作的本机批处理命令。本机批处理解决方案必须在循环中逐字符构建新字符串。非常可行 - 但很痛苦而且效率低下。
EDIT - 很久以前,我写了一个纯批处理实用程序,名为对文本文件的内容进行区分大小写的查找/替换。性能还不错,但确实有一些限制。我很少使用该代码。我编写了一个配套例程来对变量而不是文本文件进行区分大小写的查找/替换,但我似乎丢失了该代码。
今天我几乎总是使用每当我想操纵文本时。
The 您的示例的解决方案应该是:
for /f delims^=^ eol^= %%A in ('jrepl t X /s test') do set "test=%%A"
但似乎有一个错误。如果变量名称不是其他名称,则它可以工作test
。看来我还有一些调试要做。
在错误修复之前,您可以使用:
for /f delims^=^ eol^= %%A in ('cmd /v:on /c "echo(!test!)|jrepl t X"') do set "test=%%A"
更新:该bug已在3.4版本修复 The /S
选项现在适用于名为的变量TEST
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)