找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 27785|回复: 3

[文本处理] [已解决]for循环内定义的变量的值为什么无法自增一(增1)/自加一(加1)

[复制链接]
发表于 2017-5-2 18:17:08 | 显示全部楼层 |阅读模式
本帖最后由 pcl_test 于 2017-5-2 23:24 编辑

循环自动重命名文件的批处理代码为什么不会自增1?
  1. @echo off
  2. set nm=1
  3. (for /f %%i in (a.txt) do (
  4. ren %nm%.pdf %%i.pdf
  5. set /a nm=%nm%+1))
  6. 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,后面就找不到了
回显模式下发现自增没有成功,求指教,谢谢!

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2017-5-2 18:42:04 | 显示全部楼层
你的代码问题是由于变量延迟导致的,可以在论坛上搜索一下关于变量延迟的帖子
  1. @echo off
  2. setlocal EnableDelayedExpansion
  3. set nm=1
  4. (for /f %%i in (a.txt) do (
  5. ren !nm!.pdf %%i.pdf
  6. set /a nm=!nm!+1))
  7. pause
复制代码
回复 1# zds612

评分

参与人数 1技术 +1 收起 理由
Batcher + 1 乐于助人

查看全部评分

 楼主| 发表于 2017-5-2 21:51:22 | 显示全部楼层
回复 2# dizimotong


    好的,非常感谢!!
发表于 2017-5-2 22:34:18 | 显示全部楼层
@(for /f %%i in (a.txt) do set /a nm+=1&&Call ren %%nm%%.pdf %%i.pdf)
@pause
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 18:59 , Processed in 0.054745 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表