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

[文件操作] 【已解决】批处理如何把相同前缀的文件自动放在同名的文件夹下

[复制链接]
发表于 2022-4-13 00:07:51 | 显示全部楼层 |阅读模式
最近在整理电脑中的刮削的视频资料,文件夹下面有多个文件,比如
同一个文件夹下有多个文件
11CM-014.mp4
11CM-014.nfo
11CM-014-fanart.jpg
11CM-014-poster.jpg
11CM-015.mp4
11CM-015.nfo
11CM-015-fanart.jpg
11CM-015-poster.jpg

想要实现的效果是,能否批处理实现新建以前缀8位命名的前缀的文件夹,将前8位相同的文件移动到里面, 求大佬指点代码,跪谢!
像这样
11CM-014/
11CM-014.mp4
11CM-014.nfo
11CM-014-fanart.jpg
11CM-014-poster.jpg
11CM-015/
11CM-015.mp4
11CM-015.nfo
11CM-015-fanart.jpg
11CM-015-poster.jpg

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2022-4-13 08:48:32 | 显示全部楼层
要善用搜索,论坛上应当有不少类似帖子。
如果取-分隔的前两列作为文件夹名:
  1. @echo off
  2. for /f "delims=" %%i in ('dir /b /a-d *.mp4 *.nfo *.jpg') do (
  3.     for /f "tokens=1,2* delims=-" %%a in ("%%i") do (
  4.         if not exist "%%a-%%~nb" md "%%a-%%~nb"
  5.         move "%%i" "%%a-%%~nb"
  6.     )
  7. )
  8. pause
复制代码
如果就是要取文件名前8个字符作为文件夹名:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%i in ('dir /b /a-d *.mp4 *.nfo *.jpg') do (
  4.     set str=%%i
  5.     if not exist "!str:~,8!" md "!str:~,8!"
  6.     move "%%i" "!str:~,8!"
  7. )
  8. pause
复制代码
代码另存为ANSI编码。

评分

参与人数 1技术 +1 收起 理由
Batcher + 1 乐于助人

查看全部评分

 楼主| 发表于 2022-4-13 09:22:31 | 显示全部楼层
回复 2# qixiaobin0715

正在学习置顶的教程,感谢大神指导,
发表于 2024-10-26 11:24:01 | 显示全部楼层
bam-74.txt
bam-75.txt
qaws.txt
sma-66.txt
sma-77.txt
sma_dd.txt
tnc-01.txt
tnc-02.txt
tncfg-01.txt
tncfg-02.txt
wqwq.txt
第一个字符-或者—前面的为前缀,用这个前缀创建文件夹,并将该前缀的文件移到前缀文件夹下。如没有重复前缀的移到“其他”文件夹
,可以处理吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-17 18:20 , Processed in 0.019293 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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