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

[文本处理] [已解决]批处理如何把txt文本按照顺序把没有的修改递补上?

[复制链接]
发表于 2011-7-17 16:48:19 | 显示全部楼层
本帖最后由 mxxcgzxxx 于 2011-7-17 17:37 编辑

测试可用,只修改文件名为纯数字的文件,别的无视
修正数字排序错误问题
只按数字改名不按修改时间
可更改 hz参数来改变后辍
允许最大文件名8999,如果有需要可以改第五句的1000成10000就可以允许89999
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set hz=txt
  4. for /f %%1 in ('dir /on /b * ^| findstr "^[0-9]*.%hz%$"') do (
  5.        set /a a=1000+%%~n1
  6.        set x!a!=%%1
  7.        )
  8. set a=1
  9. for /f "tokens=2 delims==" %%1 in ('set x') do (
  10.        ren %%1 !a!.%hz%
  11.        set /a a+=1
  12.        )
  13. echo 转换完成
  14. pause>nul  
复制代码
 楼主| 发表于 2011-7-17 20:47:17 | 显示全部楼层
已经结贴,谢谢大家的关注
发表于 2011-7-18 13:47:14 | 显示全部楼层
18# else


只用DIR是不行,我的程序要+1000就是为了防止文件名读取错误
因为系统读数字文件名时是:1,10,11,12,13...19,2,20,21...的顺序,如果这些文件是有一定顺序的重要数据文件就会被全打乱了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-17 17:24 , Processed in 0.017087 second(s), 7 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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