字符串替换麻烦

JRomeo

我正在尝试读取文件,并从每行中删除正斜杠字符(/)。这是我所拥有的:

for /F "tokens=*" %%A in (%BRANCH_OUT%) do SET THIS_BRANCH=%%A && ECHO %THIS_BRANCH:/=%

效果很好,但是回显仅显示文件中每一行的最后一行。因此,一个文件包含:

Dir1 /

Dir2 /

Dir3 /

将被读取并输出为

目录3

目录3

目录3

关于如何解决这个问题有什么建议吗?

詹姆斯·L

如果要分配,然后在中使用变量for loop,则必须启用并使用延迟扩展。例如,给定以下内容:

c:\>@for %i in (a b c d) do @set _x=%i && @echo %_x%
d
d
d
d

就像您观察到的那样,这将回显d字符4次。如果您启用了延迟扩展并进行了这样的更改,它将回显4个字母中的每个字母,而不是d 4次。

c:\>@for %i in (a b c d) do @set _x=%i && @echo !_x!
a
b
c
d

因此,在批处理文件中,您需要setlocal ENABLEDELAYEDEXPANSION在批处理文件的开头和endlocal末尾添加。这样可以确保您可以使用该!_x!符号来获取延迟的扩展。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章