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

[文件操作] [已解决]批处理怎样将文件按照前缀统一分类?

[复制链接]
发表于 2022-11-21 13:04:39 | 显示全部楼层 |阅读模式
本帖最后由 guliduo 于 2022-11-21 17:04 编辑

请教:
我有如下文件:0100-2015-004-0001-0001.pdf,0100-2015-004-0001-0003.pdf,0100-2015-005-0010-0001.pdf,0100-2015-005-0010-0001.JPG……
步骤1.先对文件类型进行分类,建立.TXT,.PDF,.JPG  等格式名称文件夹
步骤2.到各个格式文件夹内,以指定名称分类,比如以文件名字的前三段(0100-2015-004)或者文件名字的前四段(0100-2015-004-0001)新建文件夹,然后将文件名中包含此三段文字或者此四段文字的文件移动到文件夹中?可以理解为将拥有相同前缀的文件统一归到一个文件夹中,并且可以在相同前缀中自己指定文字长度进行文件夹分类
同理,是否可以直接对文件夹也进行步骤2中的分类操作呢?
请大神指教

现有步骤1的代码,如下:
  1. @echo off
  2. for %%a in (*) do (
  3.     if /i "%%~xa" neq ".bat" (
  4.         if not exist %%~xa md %%~xa
  5.         move "%%a" "%%~xa"
  6.     )
  7. )
复制代码
发表于 2022-11-21 15:33:27 | 显示全部楼层
回复 1# guliduo


请参考Q-04把bat文件保存为ANSI编码:
https://mp.weixin.qq.com/s/Koje4FufWxWBs7ioDy_LJA
  1. @echo off
  2. REM 设置前缀字符串长度
  3. set PreLen=9

  4. cd /d "%~dp0"
  5. setlocal enabledelayedexpansion
  6. for %%a in (*) do (
  7.     if /i "%%~xa" neq ".bat" (
  8.         if not exist "%%~xa" (
  9.             md "%%~xa"
  10.         )
  11.         move /y "%%a" "%%~xa"
  12.     )
  13. )
  14. for /f "delims=" %%i in ('dir /b /ad .*') do (
  15.     echo 正在处理文件夹:%%i
  16.     pushd "%%i"
  17.     for /f "delims=" %%j in ('dir /b /a-d') do (
  18.         set "FileName=%%j"
  19.         set "FolderName=!FileName:~0,%PreLen%!"
  20.         if not exist "!FolderName!" (
  21.             md "!FolderName!"
  22.         )
  23.         move /y "%%j" "!FolderName!"
  24.     )
  25.     popd
  26. )
复制代码

评分

参与人数 1技术 +1 收起 理由
guliduo + 1 厉害!

查看全部评分

 楼主| 发表于 2022-11-21 17:04:53 | 显示全部楼层
回复 2# Batcher


    感谢版主大大,谢谢您
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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