批处理文件中的for循环变量

时间:2014-09-17 11:42:26

标签: batch-file

这是我的批处理文件:

    @echo off

    cd "D:/myFiles"

    for /r %%filename in (*) do (

    set f=%%filename

    echo %f%

    )

    pause

我期待的是,它将列出myFiles目录中的所有文件。

但我得到的是“Echo is Off'与目录' myFiles'。

中的文件数相同的次数

使用

    echo %%filename

我可以列出文件名,但是我必须对文件名做更多的操作,所以必须将它存储在一个变量中,就像当前它存储在变量f中一样。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

您需要setlocal enabledelayedexpansion才能重新评估您在循环中设置的变量。变量扩展需要!var!用法,而不是%var%。 e.g。

setlocal enabledelayedexpansion
@echo off

for /r   %%f in (*) do (
    set n=%%f
    echo !n!
)