[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[数值计算] 如何在批处理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变量没有实现自增,请大家帮助一下。

回复 1楼 的帖子

用setlocal enabledelayedexpansion,启用变量延迟,然后把%n%改成!n!

TOP

楼上正解!
改成
  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
复制代码

TOP

返回列表