在for循环中使用扩展变量

时间:2017-10-10 19:30:13

标签: windows batch-file for-loop

我想知道是否有一种方法可以在扩展变量上使用for循环。

是推荐的还是可以做的?

我有一个脚本,它读取的文本文件有很多维度,例如State%%20CountryCity%%20Country等。我将它们保存到变量中(我们称之为!P!)。所以!P1!现在有:

!P1!
City%%20Country
State%%20Country
...

脚本运行for循环并读取每一行,并根据!P1!的值更改。

我想知道或欣赏是否有人可以让我知道我可以循环变量,因为我想替换%%20,它是!P1!中包含的字符串的一部分KBD>空间

所以我正在尝试的是:

for /F "delims==" %%A in ('!P1!') do ...

我知道这不起作用,但有人可以告诉我是否有办法做到这一点,或者这是否正确?

1 个答案:

答案 0 :(得分:0)

@ECHO Off
SETLOCAL ENABLEDELAYEDEXPANSION

SET "p1=something%%%%20or%%%%20other"
SET "repl=%%%%20"
SET "p1=!p1:%repl%= !"
FOR %%a IN (%p1%) DO ECHO %%a

不确定您的问题是否与名为!p1!的变量有关,或者您是否在变量p1上使用延迟扩展。以上可能会有所帮助。