我正在尝试读取文件,并从每行中删除正斜杠字符(/)。这是我所拥有的:
for /F "tokens=*" %%A in (%BRANCH_OUT%) do SET THIS_BRANCH=%%A && ECHO %THIS_BRANCH:/=%
效果很好,但是回显仅显示文件中每一行的最后一行。因此,一个文件包含:
Dir1 /
Dir2 /
Dir3 /
将被读取并输出为
目录3
目录3
目录3
关于如何解决这个问题有什么建议吗?
如果要分配,然后在中使用变量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] 删除。
我来说两句