Board logo

标题: [文件操作] 批处理如何按关键字将文件夹下文件分类? [打印本页]

作者: Bieber    时间: 2021-2-25 20:05     标题: 批处理如何按关键字将文件夹下文件分类?

按关键字将文件夹下文件分类,例如:文件夹下存在1a.txt,2a.txt,3a.txt,2b.txt,3b.txt,4b.txt......,怎么将含有a的文件放入新建的a文件夹,含有b的文件放入新建的b文件夹
作者: smss    时间: 2021-2-25 20:45

  1. @Echo off&SetLocal EnableDelayedExpansion
  2. for /r %%i in (*.txt)do (set "n=%%~ni"&if not exist !n:~-1! md !n:~-1!
  3. move "%%i" !n:~-1!)
  4. pause
复制代码

作者: qixiaobin0715    时间: 2021-2-25 21:56

我觉得例子不典型,如果关键字是去掉数字的文件名的话:
  1. @echo off
  2. for %%i in (*.txt) do (
  3.     for /f "tokens=* delims=0123456789" %%a in ("%%~ni") do (
  4.         if not exist "%%a" md "%%a"
  5.         move "%%i" "%%a"
  6.     )
  7. )
  8. pause
复制代码

作者: Bieber    时间: 2021-2-26 19:46

回复 3# qixiaobin0715


    类似这种:Microsoft-Windows-LanguageFeatures-Basic-de-ch-Package~31bf3856ad364e35~amd64~~,我需要按照de-cn提取,然后放入de-cn的文件夹
作者: qixiaobin0715    时间: 2021-2-27 06:33

本帖最后由 qixiaobin0715 于 2021-2-27 11:53 编辑

还是没有说的太明白,猜是一个很痛苦的事,还不知是否猜对。
  1. @echo off
  2. for %%i in (*.txt) do (
  3.     for /f "tokens=4 delims=~" %%a in ("%%i") do (
  4.         if not exist %%a md %%a
  5.         move "%%i" "%%a"
  6.         )
  7. )
  8. pause
复制代码

作者: qixiaobin0715    时间: 2021-2-27 09:12

应当把关键字的特征说清楚,比如4楼的例子:为什么关键字是de-ch,而不是Basic-de。只是自己清楚,不准确表达出来,代码如何写?
作者: Bieber    时间: 2021-2-27 10:07

回复 6# qixiaobin0715


关键字是对应的Windows的语言代码,例如en-US/zh-CN/en-GB.....只可能是这种格式,不会含有数字
Microsoft-OneCore-StorageManagement-FoD-Package~31bf3856ad364e35~wow64~en-US~
Microsoft-Windows-ActiveDirectory-DS-LDS-Tools-FoD-Package~31bf3856ad364e35~amd64~en-GB~
Microsoft-OneCore-StorageManagement-FoD-Package~31bf3856ad364e35~amd64~zh-CN~
作者: qixiaobin0715    时间: 2021-2-27 10:26

如果按“~”进行分割,是否关键字都在第4组
1:Microsoft-OneCore-StorageManagement-FoD-Package   2:31bf3856ad364e35   3:wow64   4:en-US
作者: Bieber    时间: 2021-2-27 11:18

回复 8# qixiaobin0715


       是的,就是第四组
作者: qixiaobin0715    时间: 2021-2-27 11:54

回复 9# Bieber
5楼代码已修改,试试吧
作者: Bieber    时间: 2021-2-27 17:13

回复 10# qixiaobin0715


    感谢,我试试




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2