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

[文件操作] 批处理如何把文件按4个一组放文件夹里并改名为1 2 3 4

[复制链接]
发表于 2020-11-29 19:13:21 | 显示全部楼层 |阅读模式
例如:文件夹里有400个文件   按顺序1 2  3  4 5 .....400这样下来的    如何把他们分开4个一组放到文件夹里      把1234放文件夹1(名称1234)    把5678放文件夹2(改为1234)      把9 10 11 12放文件夹3(改为1234)     类推      求大神给个代码
发表于 2020-11-29 20:56:00 | 显示全部楼层
  1. @echo off
  2. setlocal EnableDelayedExpansion
  3. cd /d "%~dp0"
  4. set /a fn=1,dn=1,groupCount=4
  5. if not exist "文件夹!dn!" md "文件夹!dn!"
  6. for %%A in (*) do (
  7.   copy /y "%%A" "文件夹!dn!"
  8.   if !fn! geq !groupCount! (
  9.     ren "文件夹!dn!" "!dn!"
  10.     set /a fn=1,dn+=1
  11.     if not exist "文件夹!dn!" md "文件夹!dn!"
  12.   ) else (
  13.     set /a fn+=1
  14.   )
  15. )
  16. endlocal
  17. exit /b
复制代码
发表于 2020-11-30 07:02:20 | 显示全部楼层
for 提取文件名的顺序好像是1/10/11/12.../100/101... ,2/20/21.../200/201...
发表于 2020-12-1 10:42:13 | 显示全部楼层
本帖最后由 qixiaobin0715 于 2020-12-1 11:08 编辑

如果是数字命名的话,文件扩展名是txt,这样应当可以:
  1. @echo off
  2. md 1,2,3,4
  3. setlocal EnableDelayedExpansion
  4. set /a FlolderNames=0,n=0,m=0
  5. for /l %%a in (1,1,400) do (
  6.     set /a x=%%a%%4
  7.     set /a y=%%a%%16
  8.     set /a n+=1
  9.     set /a FileNames=n+m
  10.     if !x!==1 (
  11.         set /a FlolderNames+=1
  12.     )
  13.     move %%a.txt !FlolderNames!\!FileNames!.txt
  14.     if !x!==0 (
  15.         set n=0
  16.     )
  17.     if !y!==0 (
  18.         set FlolderNames=0
  19.         set /a m+=4
  20.     )
  21. )
  22. pause
复制代码
发表于 2020-12-1 14:28:31 | 显示全部楼层
本帖最后由 terse 于 2020-12-1 23:01 编辑

数字命名的话 这样算法呢
不是数字命名的话 递加一下即可
改名称1234 这个怎么理解的 重命名吗
  1. @echo off&setlocal enabledelayedexpansion
  2. md 1,2,3,4 >nul 2>nul
  3. for /l %%i in (1,1,400) do (
  4.      set /a "n=(%%i-1)/4%%4+1"
  5.      move "%%i.txt" "!n!"
  6. )
  7. pause
复制代码
重命名处理 假设文件后缀txt
  1. @echo off&setlocal enabledelayedexpansion
  2. md 1,2,3,4 >nul 2>nul
  3. for /l %%i in (1,1,400) do (
  4.      set /a "n=(%%i-1)/4%%4+1"
  5.      set /a "_!n!+=1"
  6.      for %%j in (_!n!) do move "%%i.txt" "!n!\!%%j!.txt"
  7. )
  8. pause
复制代码

评分

参与人数 1技术 +1 收起 理由
qixiaobin0715 + 1 省去了n个判断,效率高!!!

查看全部评分

发表于 2020-12-1 14:54:17 | 显示全部楼层
我的理解,楼主的意思是:
将400个文件按顺序分别4个4个的移到1-4文件夹并按数字顺序重命名,最终结果1-4文件夹的文件名都是1-100的数字。
发表于 2020-12-7 14:01:23 | 显示全部楼层
回复 5# terse
第二个for不用也可以啊。
  1. @echo off&setlocal enabledelayedexpansion
  2. md 1,2,3,4 >nul 2>nul
  3. for /l %%i in (1,1,400) do (
  4.      set /a "n=(%%i-1)/4%%4+1"
  5.      set /a "_!n!+=1"
  6.      set /a str=_!n!
  7.      move "%%i.txt" "!n!\!str!.txt"
  8. )
  9. pause
复制代码
 楼主| 发表于 2020-12-23 16:09:57 | 显示全部楼层
回复 5# terse


    12  3  64  姜国.JPG                      12364 王天.JPG                                165         天天.txt                   空格有的1格有的2格3格  文件有JPG有TXT的      如何批量去除掉他们的空格    有的是数字间有空格  也有数字和文字间的空格    改好的最终显示为12364姜国.JPG     12364王天.JPG    165天天.txt求大神给个代码
发表于 2020-12-23 17:06:25 | 显示全部楼层
显示正确的话 去掉代码第五行的echo,
  1. @echo off&setlocal enabledelayedexpansion
  2. set ext=*.txt *.jpg
  3. for /f "delims=" %%i in ('dir /b /a-d %ext%') do (
  4.      set filename=%%i
  5.      echo,ren "%%i" "!filename: =!"
  6. )
  7. pause
复制代码
 楼主| 发表于 2020-12-23 19:00:07 | 显示全部楼层
回复 9# terse


  哥哥  这个能帮忙看看吗     12  3  64X  姜国.JPG                      12364 王天.JPG                                165         天天.txt                   空格有的1格有的2格3格  文件有JPG有TXT的      如何批量去除掉他们的空格    有的是数字间有空格  也有数字和文字间的空格    改好的最终显示为12364X姜国.JPG     12364王天.JPG    165天天.txt求大神给个代码
发表于 2020-12-23 20:57:26 | 显示全部楼层
本帖最后由 terse 于 2020-12-23 22:22 编辑
回复  terse


  哥哥  这个能帮忙看看吗     12  3  64X  姜国.JPG                      12364 王天 ...
laolou01 发表于 2020-12-23 19:00

没明白你的意思,九楼代码不行吗
加一行代码应该可行了
  1. @echo off&setlocal enabledelayedexpansion
  2. set ext=*.txt *.jpg
  3. for /f "delims=" %%i in ('dir /b /a-d %ext%') do (
  4.      set "filename=%%i"
  5.      set "filename=!filename: =!"
  6.      echo;ren "%%i" "!filename: =!"
  7. )
  8. pause
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-20 09:34 , Processed in 0.022742 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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