这是我的批处理文件:
@echo off
cd "D:/myFiles"
for /r %%filename in (*) do (
set f=%%filename
echo %f%
)
pause
我期待的是,它将列出myFiles目录中的所有文件。
但我得到的是“Echo is Off'与目录' myFiles'。
中的文件数相同的次数使用
echo %%filename
我可以列出文件名,但是我必须对文件名做更多的操作,所以必须将它存储在一个变量中,就像当前它存储在变量f中一样。
任何帮助将不胜感激。
答案 0 :(得分:1)
您需要setlocal enabledelayedexpansion才能重新评估您在循环中设置的变量。变量扩展需要!var!
用法,而不是%var%
。 e.g。
setlocal enabledelayedexpansion
@echo off
for /r %%f in (*) do (
set n=%%f
echo !n!
)