标题: [文本处理] [已解决]for循环内定义的变量的值为什么无法自增一(增1)/自加一(加1) [打印本页]
作者: zds612 时间: 2017-5-2 18:17 标题: [已解决]for循环内定义的变量的值为什么无法自增一(增1)/自加一(加1)
本帖最后由 pcl_test 于 2017-5-2 23:24 编辑
循环自动重命名文件的批处理代码为什么不会自增1?- @echo off
- set nm=1
- (for /f %%i in (a.txt) do (
- ren %nm%.pdf %%i.pdf
- set /a nm=%nm%+1))
- pause
复制代码
本人小白一个哈,代码都是网上找来自己改的
上述代码需要实现的是:
同目录下有
1.pdf
2.pdf
3.pdf
a.txt
其中a.txt里面的内容是:
aaa
bbb
ccc
我想通过批处理的变量自增,来实现
ren 1.pdf aaa.pdf
ren 2.pdf bbb.pdf
ren 3.pdf ccc.pdf
但是我写的看来看去,第一个文件可以被修改为aaa.pdf,后面就找不到了
回显模式下发现自增没有成功,求指教,谢谢!
作者: dizimotong 时间: 2017-5-2 18:42
你的代码问题是由于变量延迟导致的,可以在论坛上搜索一下关于变量延迟的帖子- @echo off
- setlocal EnableDelayedExpansion
- set nm=1
- (for /f %%i in (a.txt) do (
- ren !nm!.pdf %%i.pdf
- set /a nm=!nm!+1))
- pause
复制代码
回复 1# zds612
作者: zds612 时间: 2017-5-2 21:51
回复 2# dizimotong
好的,非常感谢!!
作者: 老刘1号 时间: 2017-5-2 22:34
@(for /f %%i in (a.txt) do set /a nm+=1&&Call ren %%nm%%.pdf %%i.pdf)
@pause
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |