Board logo

标题: [求助]如何实现文件批量重命名(1.rm --> 001.rm 这样的) [打印本页]

作者: coolstar14     时间: 2005-2-20 00:00    标题: [求助]如何实现文件批量重命名(1.rm --> 001.rm 这样的)

从网上下载过一些文件, 命令规则为 1.rm 2.rm ... 11.rm 12.rm ... 100.rm 这样的.

在资源管理器里按文件名排序就不太爽了, dos下有没有方便的方法可以统一的补全三(或指定位数), 即 1.rm --> 001.rm   11.rm --> 011.rm 这样的.

另, 有的情况下, 数字前面还带些前缀, 如 sanguo1.rm 这样的, 应该改成 sanguo001.rm这样.



试了半天的for 一直不行, 求助各位大侠, 请多多指教.


作者: chenhui530     时间: 2005-2-20 00:00

作者: chenhui530     时间: 2005-2-20 00:00
如果你的系统是nt构架的话可以使用FOR语句for /l %%a in (1,1,99) do ren sanguo%%a.txt 0%%a.txt
作者: chenhui530     时间: 2005-2-20 00:00
for /l %%a in (1,1,99) do ren sanguo%%a.rm 0%%a.rm
作者: coolstar14     时间: 2005-2-20 00:00
谢谢楼上.
我是2000系统, 所有你给的答案应该是正解了.

我刚试了一把, 基本应该算成功的. 它确实在每个文件前面都加了个0, 虽然不像我希望的那样( 可以区分出位数, 统一补全对应的位数,像sg1.rm 补为 sg001.rm sg10.rm 则只补1个0为sg010.rm), 但稍麻烦一点把这个命令使用两遍也就是了.

另: 对于其中的语法解释我还不是太明白, 正在找Window的帮助, 如果大侠方便, 能不能稍微解释一下.

作者: coolstar14     时间: 2005-2-20 00:00
受教了.
我知道之前我弄了半天For 为什么不行了, 思路不对的啦.
之前我的思路是局限在从文件名上取变量, 根本没想到可以直接用 1 -99 当变量的说.
我原来 是这样用的 for %a in (sg?.rm) do echo ren %a ...
很明显上面那句是可以列出所有符合要求的文件, 但实际命令中因为无法取到数字部分, 所以只能是失败了.

OK, 再次感谢楼上, 不仅是解决问题, 而且教会我一种新的思路.

作者: chenhui530     时间: 2005-2-20 00:00
没有大家互相学习多实践就能找出答案
作者: Climbing     时间: 2005-2-20 00:00
用命令怪麻烦的,安装一个拖把更名器,想怎么改就怎么改。
作者: bush     时间: 2005-2-21 00:00
的確受教!nt命令行較之dos真是改變很大呀!