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

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

我用
  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,
如何实现,谢谢!

出现上面的情况是因为系统按文件名排列文件的规则决定的,无法更改。
如果要按正常顺序排列的话,文件名要设成 01 02 03 04 05 06 07 08 09 10 ……之类的。
时光荏苒||新陈代谢&&涛声依旧||本性难移

TOP

本帖最后由 悬崖之树 于 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
复制代码
时光荏苒||新陈代谢&&涛声依旧||本性难移

TOP

分别获取
  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

评分人数

TOP

本帖最后由 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!\"
复制代码
成功了,谢谢

也谢谢“悬崖之树”热心指点

TOP

回复 5# ytyyutianyun


    问题解决后,请编辑顶楼帖子在标题前面注明[已解决],并给回答者加分。

TOP

返回列表