标题: [数值计算] 如何在批处理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
楼上正解!
改成- @echo off
- setlocal enabledelayedexpansion
- set SRC=%userprofile%\Local Settings\Temporary Internet Files\wjpsky*.png
- set DEST=C:\wjpsky\report
- for /f "delims=" %%f in ('dir /s /b "%SRC%"') do
- (
- set /a n=n+1
- copy /Y "%%f" "%DEST%!n!.png"
- )
- pause>nul
复制代码
或- @echo off
- set SRC=%userprofile%\Local Settings\Temporary Internet Files\wjpsky*.png
- set DEST=C:\wjpsky\report
- for /f "delims=" %%f in ('dir /s /b "%SRC%"') do
- (
- set /a n=n+1
- call, copy /Y "%%f" "%DEST%%%n%%.png"
- )
- pause>nul
复制代码
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |