本帖最后由 慕夜蓝化 于 2015-1-4 11:18 编辑
- @echo off
- for /f "delims=" %%a in (1.txt) do (
- echo abcdefgh >1.txt
- echo %%a >>1.txt&pause >nul
- )
- pause
复制代码 添加pause按钮,每执行一次,打开一次1.txt,由此可见,for /f 是仅打开一次i/o开关,将所读取内容存储于内存中,以备使用。
还有,如果文本文件为0字节,for 命令的运行,将无从谈起。
同样,for /f 命令支持所有在命令提示符下能够产生字节的命令:- @echo off
- setlocal enabledelayedexpansion
- set "n=0"
- :loop
- set/a c+=1
- for /f "delims=" %%i in ('set/a n+=1') do (
- echo,%%i
- echo,!n!
- )
- if %c% equ 3 goto :b
- goto :loop
-
- :b
- pause&exit
复制代码 期间n的值并未发生变化,可以这样讲,此时for /f %%i in提取到了set/a 运算所得出的结果,并赋予%i,但无论运行多少次,n的值都不会改变。因为命令所产生的结果,被%i所提取。 |