@echo off
setlocal enabledelayedexpansion
set /a na=1
for %%m in (*.txt)do (
set /a na+=1
@echo %na%)
@echo %na%
set na=
为什么for中na的值不变,for结束后却变了。怎样在for中使na变呢?
@echo off
setlocal enabledelayedexpansion
set /a na=1
for %%m in (*.txt)do (
set /a na+=1
@echo !na!)
@echo %na%
set na=追é®
è½è¯´ä¸ä¸%åï¼çåºå«åï¼
追çå¦æä½ å¸æåéå¨forä¸æ¯æ¬¡å¾ªç¯å¼é½æ´æ°ï¼å°±éè¦å¼å¯åé延è¿
è¯å¥ä¸ºsetlocal enabledelayedexpansion
并å°åé使ç¨!çæ¹å¼è¿è¡ä½¿ç¨
!a!å%a%é½è¡¨ç¤ºaåéï¼åªä¸è¿å¨forä¸!a!æ¯æ¬¡å¾ªç¯çå¼é½æ¯aå½åçå¼ï¼è%a%ä¸è½å¨å¾ªç¯ä¸æ´æ°ï¼åªæå¨ç»æåæè½æ¾ç¤ºåºæåçç»æï¼å
·ä½åå 请æ¥è¯¢ãforåé延è¿ã
æåé®ä¸ä¸ª
ææ³å§å½åç®å½çæætxtæ件å½å为1.txt 2.txt 3.txtããããã
该æä¹åï¼
另外提醒你保存的文件名不能和内部命令相同
@echo off
setlocal enabledelayedexpansion
for %%x in (*) do (
if not "%%x"=="不能和内部命令相同.bat" (
set /a sum+=1
rename "%%x" "报告!sum!.doc"
))