联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!
::不用变量延迟[setlocal enableDelayedExpansion]也可以计算 @echo off for /f %%a in ('dir/b') do call :num_add file_num echo 目录下有%file_num%个文件(夹)。 pause goto :eof :num_add set/a %1+=1 goto :eof
Originally posted by HAT at 2008-6-24 22:36: 不知道,学习。
(for /f %i in ('dir /b') do set /a n+=1 >nul)&call echo 目录下有%n%个文件(夹)
@echo off for /f %%a in ('dir/b') do ( call :num_add file_num echo %file_num% ) echo 目录下有%file_num%个文件(夹)。 pause goto :eof :num_add set/a %1+=1 goto :eof
@echo off for /f %%i in ('dir /b') do ( set /a n+=1 >nul echo %n% ) echo 目录下有%n%个文件(夹) pause
@echo off setlocal enabledelayedexpansion for /f %%i in ('dir /b') do ( set /a n+=1 >nul echo !n! ) echo %n% pause
(for /f "tokens=*" %i in ('dir /b') do set /a n+=1 >nul&call set _%n%=%i >nul)&call echo 目录下有%n%个文件(夹)
echo %_9%
Originally posted by metoo at 2008-6-25 01:40 PM: 这个是一个取巧的办法了,是用连续多变量分别赋值达到获得其中某个中间变量的值,而不是真正的连续赋值/中间环节直接获取。是定义了n个变量来 ...
@echo off for /f %%a in ('dir/b') do set /a file_num+=1 echo 目录%cd%下有%file_num%个文件(夹)。
@echo off for /f "tokens=*" %%i in ('dir /b') do ( set /a n+=1 >nul call set _%n%=%%i >nul rem 这句其实是有问题的在for未执行完之前%n%为空,所以都是在设置 _ 这个变量的值 echo %n% echo %_% echo %_1% rem 上面这3句是来验证下循环中的变量是不是能使用(我自己加出来的) ) echo\ echo\ echo\ ::换行 ::到这儿整个循环结束 %n% %_% 这两个个变量生效 echo %_% echo %n% echo %_1% ::验证到%_1%变量不存在 echo\ echo\ echo\ ::换行 ::上面这3句是来验证下循环中的变量是不是能使用(我自己加出来的) call echo 目录下有%n%个文件(夹) pause