联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!
set LIST= for %i in (*) do set LIST=%LIST% %i echo %LIST% 原因是,它不会在目前的目录中建立一个文件列表,而只是将 LIST 变量设成找到的最后一个文件。这也是因为 %LIST% 在 FOR 语句被读取时,只被扩充了一次;而且,那时的 LIST 变量 是空的。因此,我们真正执行的 FOR 循环是: for %i in (*) do set LIST= %i 这个循环继续将 LIST 设成找到的最后一个文件。 延迟环境变量扩充允许您使用一个不同的字符(惊叹号)在执行 时间扩充环境变量。如果延迟的变量扩充被启用,可以将上面 例子写成以下所示,以达到预期效果: set VAR=before if "%VAR%" == "before" ( set VAR=after if "!VAR!" == "after" @echo If you see this, it worked ) set LIST= for %i in (*) do set LIST=!LIST! %i echo %LIST%
@echo off setlocal enabledelayedexpansion for /f %%c in (aa.txt) do ( set b=%%c echo !b! ) pause
@echo off for /f "delims=" %%c in ('type a.bat') do ( set "b=%%c" call echo %%b%% ) pause
@echo off&setlocal enabledelayedexpansion for /f "delims=" %%c in ('type a.bat') do ( set "b=%%c" echo !b! ) pause