标题: [文件操作] 批处理如何按关键字将文件夹下文件分类? [打印本页]
作者: 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
- @Echo off&SetLocal EnableDelayedExpansion
- for /r %%i in (*.txt)do (set "n=%%~ni"&if not exist !n:~-1! md !n:~-1!
- move "%%i" !n:~-1!)
- pause
复制代码
作者: qixiaobin0715 时间: 2021-2-25 21:56
我觉得例子不典型,如果关键字是去掉数字的文件名的话:- @echo off
- for %%i in (*.txt) do (
- for /f "tokens=* delims=0123456789" %%a in ("%%~ni") do (
- if not exist "%%a" md "%%a"
- move "%%i" "%%a"
- )
- )
- 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 编辑
还是没有说的太明白,猜是一个很痛苦的事,还不知是否猜对。- @echo off
- for %%i in (*.txt) do (
- for /f "tokens=4 delims=~" %%a in ("%%i") do (
- if not exist %%a md %%a
- move "%%i" "%%a"
- )
- )
- 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 |