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

[文件操作] 批处理默认列表顺序为1,10,11,...,2,21,...怎么办?

[复制链接]
发表于 2013-2-16 13:44:14 | 显示全部楼层 |阅读模式
我用
  1. for /f "delims=" %%i in ('dir /a-d /b "%dir_src%"') do (
  2. >nul copy "%dir_src%\%%i" "!dir_des!"
复制代码
处理文件,发现内部生成文件序列为1.jpg,10.jpg,11,....jpg,2.jpg,21.jpg,.

但我需要的是正常序列1.jpg,2.jpg,3.jpg,4.jpg,5.jpg,6.jpg,
如何实现,谢谢!
发表于 2013-2-16 18:54:22 | 显示全部楼层
出现上面的情况是因为系统按文件名排列文件的规则决定的,无法更改。
如果要按正常顺序排列的话,文件名要设成 01 02 03 04 05 06 07 08 09 10 ……之类的。
发表于 2013-2-16 20:25:39 | 显示全部楼层
本帖最后由 悬崖之树 于 2013-2-16 20:27 编辑

下面的代码可以将批处理所在的目录下的所有txt文件重命名为01.txt 02.txt……(最多可以 重命名99个哦,超出将出错!!)
  1. @echo off & setlocal enabledelayedexpansion

  2. set n=99
  3. :s
  4. set /a n+=1
  5. set m=%n:~-2%
  6. if %n% gtr 100 goto :eof
  7. for /f "delims=" %%i in ('dir /a-d /b *.txt') do (
  8.    call :s
  9.    ren "%%i" !m!.txt
  10. )
  11. pause
复制代码
发表于 2013-2-17 05:02:39 | 显示全部楼层
分别获取
  1. for /f "delims=" %%i in ('dir /a-d /b ?.txt^&dir /a-d /b ??.txt') do (
  2. >nul copy "%dir_src%\%%i" "!dir_des!"
复制代码

评分

参与人数 1技术 +1 收起 理由
QIAOXINGXING + 1 学习了

查看全部评分

 楼主| 发表于 2013-2-18 12:48:17 | 显示全部楼层
本帖最后由 ytyyutianyun 于 2013-2-18 12:52 编辑

回复 4# group

Good,
  1. set dir_des=%dir_desA%
  2. for /f "delims=" %%i in ('dir /a-d /b %dir_src%\?.txt^&dir /a-d /b %dir_src%\??.txt^&dir /a-d /b %dir_src%\???.txt^&dir /a-d /b %dir_src%\????.txt') do (
  3. >nul copy "%dir_src%\%%i" "!dir_des!"
复制代码
成功了,谢谢

也谢谢“悬崖之树”热心指点
发表于 2013-2-18 23:07:45 | 显示全部楼层
回复 5# ytyyutianyun


    问题解决后,请编辑顶楼帖子在标题前面注明[已解决],并给回答者加分。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-19 23:15 , Processed in 0.018318 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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