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

[文件操作] 【已解决】批处理怎样根据文件名实现视频归类?

[复制链接]
发表于 2015-4-6 19:15:04 | 显示全部楼层 |阅读模式
本帖最后由 wangdao6699 于 2015-4-7 06:34 编辑

视频放到相应文件夹里,输出文件夹是:文件名+扩展名
如:美系-SU-V[高清版].rm,较---量..-V...mp4,奔驰--C26--0L.mpeg
。。。。。。
俄罗斯-V[高清版].rm,试车】看看量.1.-V .mp4,奔驰全新0L-.mpeg

美系-SU-V[高清版]-01.rm
美系-SU-V[高清版]-02.rm
。。。。。
较---量..-V..-001.mp4
较---量..-V..-002.mp4
。。。
奔驰--C26--0L-000001.mpeg
奔驰--C26--0L-000002.mpeg
。。。。。。
特点:最后一个分隔符都是  -

俄罗斯-V[高清版]000001.rm
俄罗斯-V[高清版]000002.rm
。。。。。
试车】看看量.1.-V 000001.mp4
试车】看看量.1.-V 000002.mp4
。。。
奔驰全新0L-000001.mpeg
奔驰全新0L-000002.mpeg
。。。。。。
特点:最后几位都是6位

评分

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

查看全部评分

发表于 2015-4-6 19:53:44 | 显示全部楼层
怎么分?
美系-SU-V[高清版]-01.rm
美系-SU-V[高清版]-02.rm
美系-SU-V[高清版]000001.rm
美系-SU-V[高清版]000002.rm
都分到"美系-SU-V[高清版]rm"文件夹里?
发表于 2015-4-6 20:44:13 | 显示全部楼层
回复 1# wangdao6699


方案1
提取文件名如“美系”,以些建立目录,移动‘*美系*’到美系文件夹。以此类推……
优缺点:程序编写简单,手动量大。
方案2
根据文件后面的0001到建一个目录,移动相应文件到这个目录。
优缺点:程序编写——反正我不会,手动量小。
 楼主| 发表于 2015-4-6 20:58:33 | 显示全部楼层
回复 2# pcl_test


   不好意思,一着急,打错了,是这样的,文件名命名规律如一楼(两种,做两个批处理【分别针对两种做的,做一个那更好了】)由于文件比较多
 楼主| 发表于 2015-4-6 21:06:57 | 显示全部楼层
本帖最后由 wangdao6699 于 2015-4-6 21:13 编辑

回复 2# pcl_test


    文件夹命名如:
美系-SU-V[高清版].rm,较---量..-V...mp4,奔驰--C26--0L.mpeg
。。。。。。
俄罗斯-V[高清版].rm,试车】看看量.1.-V .mp4,奔驰全新0L-.mpeg
 楼主| 发表于 2015-4-6 21:18:08 | 显示全部楼层
回复 3# 小文


    谢谢,命名规则已修改
发表于 2015-4-6 21:34:30 | 显示全部楼层
回复 5# wangdao6699
你以文件名“最后一个分隔符都是  - ”和“最后几位都是6位”为筛选条件不妥,比如你举例的
奔驰--C26--0L-000001.mpeg
奔驰--C26--0L-000002.mpeg
奔驰全新0L-000001.mpeg
奔驰全新0L-000002.mpeg
这些是分到“最后一个分隔符都是  - ”还是“最后几位都是6位”??

评分

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

查看全部评分

 楼主| 发表于 2015-4-6 21:42:33 | 显示全部楼层
回复 7# pcl_test


    感谢您,现在已将所有视频文件按照命名规则放到两个文件夹了,即最后一个分隔符都是  - 和最后几位都是6位,所以要做两个批处理
 楼主| 发表于 2015-4-6 21:49:12 | 显示全部楼层
回复 7# pcl_test


    现在在同一个文件夹里:奔驰--C26--0L-000001.mpeg
奔驰--C26--0L-000002.mpeg
奔驰全新0L-000001.mpeg
奔驰全新0L-000002.mpeg
。。。。。。
不会有类似这些分歧了
 楼主| 发表于 2015-4-6 21:52:17 | 显示全部楼层
回复 7# pcl_test


    很不好意思,给您带来不少分歧,写这帖子有欠考虑
发表于 2015-4-6 22:03:54 | 显示全部楼层
本帖最后由 pcl_test 于 2015-4-6 22:41 编辑
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. ::筛选“最后几位都是6位”
  4. for /f "delims=" %%a in ('dir /a-d /b ^|find /v ".bat"') do (
  5. set "name=%%~na"
  6. if not exist "!name:~,-6![%%~xa]" md "!name:~,-6![%%~xa]"
  7. move "%%a" "!name:~,-6![%%~xa]"
  8. )
  9. pause
复制代码
发表于 2015-4-6 22:40:30 | 显示全部楼层
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. ::筛选“最后一个分隔符都是 - ”
  4. for /f "delims=" %%a in ('dir /a-d /b ^|find /v ".bat"') do (
  5. set "t=%%~na"
  6. set "t=!t:-=,!"
  7. for %%b in (!t!) do set "str=%%bfedcba9876543210"
  8. set /a len=0x!str:~14,1!
  9. call :mo "%%a" !len!
  10. )
  11. pause
  12. :mo
  13. set name=%~n1
  14. set name=!name:~,-%2!
  15. if not exist "!name![%~x1]" md "!name![%~x1]"
  16. move %1 "!name![%~x1]"
  17. goto :eof
复制代码

评分

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

查看全部评分

发表于 2015-4-6 22:44:53 | 显示全部楼层
本帖最后由 bailong360 于 2015-4-6 22:49 编辑
  1. @Echo Off >nul 2>&1 3>&1 4>&1
  2. SetLocal EnableDelayedExpansion
  3. For /F "Delims=" %%a In ('Dir /A-D /B^|Find /v ".bat"') Do (
  4.     Set "FileName=%%~na"
  5.     Echo !FileName:~-6!|Findstr "^[0-9]*$"&&(
  6.         If "!FileName:~-7,1!"=="-" (
  7.             Set "FileName=!FileName:~0,-7!%%~xa"
  8.         ) Else Set "FileName=!FileName:~0,-6!%%~xa"
  9.         Md ".\!FileName!"
  10.         Move "%%a" ".\!FileName!"
  11.     )||(
  12.         For /F "Tokens=1-3 Delims=-" %%b In ("%%a") Do (
  13.             Md "%%b-%%c-%%d%%~xa"
  14.             Move "%%a" "%%b-%%c-%%d%%~xa"
  15.         )
  16.     )
  17. )
复制代码

评分

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

查看全部评分

 楼主| 发表于 2015-4-7 06:32:52 | 显示全部楼层
非常感谢上面两位的代码,会好好研读的
发表于 2015-4-7 09:29:35 | 显示全部楼层
本帖最后由 cobat 于 2015-4-7 09:55 编辑
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for %%a in (*.rm *.mp4 *.mpeg) do (
  4.     set "$=%%a"
  5.     for %%b in ("a:\!$:-=\!") do (
  6.         set "#=%%~nb"
  7.         for %%c in ("!#:~-6!%%~xa") do (
  8.             set "$=!$:-%%~c=!"
  9.             set "$=!$:%%~c=!%%~xa"
  10.             md "!$!" 2>nul
  11.             move "%%a" "!$!" >nul
  12.         )
  13.     )
  14. )
  15. pause
复制代码

评分

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

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-19 10:11 , Processed in 0.020205 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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