Board logo

标题: [数值计算] 如何在批处理for循环中使用自增变量? [打印本页]

作者: wjpsky    时间: 2009-12-8 15:25     标题: 如何在批处理for循环中使用自增变量?

代码如下:
set SRC=%userprofile%\Local Settings\Temporary Internet Files\wjpsky*.png
set DEST=C:\wjpsky\report
set n=1
for /f "delims=" %%f in ('dir /s /b  "%SRC%"') do
(   
  set /a n=n+1   
  copy /Y "%%f" "%DEST%%n%.png"  
)

希望拷贝Temporary Internet Files目录中类似wjpsky*.png的文件到C:\wjpsky文件夹内,文件名分别为report1.png,report2.png,report3.png,report4.png,report5.png......
但是好像始终都是report0.png,n变量没有实现自增,请大家帮助一下。
作者: Undead    时间: 2009-12-8 15:39     标题: 回复 1楼 的帖子

用setlocal enabledelayedexpansion,启用变量延迟,然后把%n%改成!n!
作者: x576380361    时间: 2009-12-8 18:38

楼上正解!
改成
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set SRC=%userprofile%\Local Settings\Temporary Internet Files\wjpsky*.png
  4. set DEST=C:\wjpsky\report
  5. for /f "delims=" %%f in ('dir /s /b  "%SRC%"') do
  6. (   
  7.   set /a n=n+1   
  8.   copy /Y "%%f" "%DEST%!n!.png"  
  9. )
  10. pause>nul
复制代码
  1. @echo off
  2. set SRC=%userprofile%\Local Settings\Temporary Internet Files\wjpsky*.png
  3. set DEST=C:\wjpsky\report
  4. for /f "delims=" %%f in ('dir /s /b  "%SRC%"') do
  5. (   
  6.   set /a n=n+1   
  7. call, copy /Y "%%f" "%DEST%%%n%%.png"  
  8. )
  9. pause>nul
复制代码





欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2