Board logo

标题: [文本处理] [已解决]批处理怎么按照关键词1到关键词2之间的文件名分类文件 [打印本页]

作者: 8532200    时间: 2021-4-28 13:21     标题: [已解决]批处理怎么按照关键词1到关键词2之间的文件名分类文件

目前已有最完美的BAT,支持子文件夹的
  1. @echo off
  2. for %%i in (*分割*) do (
  3.     for /f "tokens=1 delims=分割" %%a in ("%%i") do (
  4.         if not exist "%%a" md "%%a"
  5.         move "%%i" "%%a"
  6.     )
  7. )
  8. pause
复制代码
这个bat是把所有文件名按照关键词分割来分类文件
比如我有两个文件,是
朱雀记分割1.txt
朱雀记分割2.txt

他就会把所有文件名放到一个朱雀记的文件夹里



现在遇到很大的问题。。。我有几千文件,全部是这种

001分类朱雀记分割1.txt
002分类朱雀记分割2.txt



001分类间客分割1.txt
002分类间客分割2.txt

求可以按照关键词来帮我把类似文件文件夹里。。。感谢感谢。

比如上面关键词是分类和分割,分别存放去朱雀记和间客的新建文件夹中
作者: qixiaobin0715    时间: 2021-4-28 16:10

回复 1# 8532200
你所谓的完美bat实际上是不完美的,能够分类文件是因为凑巧而已。比如用此代码去处理你现在提供的文件,就会建立001、002文件夹进行分类。
“delims=分割”后面的字符是按单个字符(”分“和”割')进行处理的,比如处理“001分类朱雀记分割1.txt”,会将文件名分为3部分:001,类朱雀记,1.txt;由于tokens=1,只会取第一部分“001”。最好的办法是将多于1个的所谓关键词替换为单字符,再进行分割处理。具体你现在的需求,可以用以下代码:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%i in ('dir /b /a-d *.txt') do (
  4.     set "str=%%i"
  5.     set "str=!str:分类=:!"
  6.     set "str=!str:分割=:!"
  7.     for /f "tokens=2 delims=:" %%a in ("!str!") do (
  8.         if not exist %%a md %%a
  9.         move "%%i" "%%a"
  10.     )
  11. )
  12. pause
复制代码

作者: 8532200    时间: 2021-4-28 16:14

回复  8532200
你所谓的完美bat实际上是不完美的,能够分类文件是因为凑巧而已。比如用此代码去处理你现在 ...
qixiaobin0715 发表于 2021-4-28 16:10



    感谢回复。。其实那个我基本可以解决生活中百分之90以上的文件处理了。。。很少需要求到现在这个。。。只是偶尔有特别需要才需要用到这个,真的非常感谢你的回复
作者: qixiaobin0715    时间: 2021-4-29 05:31

本帖最后由 qixiaobin0715 于 2021-4-29 05:47 编辑

回复 3# 8532200
顶楼代码这样更好一些
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%i in ('dir /b /a-d *.txt') do (
  4.     set "str=%%~ni"
  5.     set "str=!str:分类=:!"
  6.     for /f "tokens=2 delims=:" %%a in ("!str!") do (
  7.         if not exist %%a md %%a
  8.         move "%%i" "%%a"
  9.     )
  10. )
  11. pause
复制代码

作者: qixiaobin0715    时间: 2021-4-29 05:34

如果想取前面的字符作为文件夹名tokens=1
取后面字符作为文件夹名tokens=2
作者: 8532200    时间: 2021-4-29 06:54

回复  8532200
顶楼代码这样更好一些
qixiaobin0715 发表于 2021-4-29 05:31



    好的。非常感谢




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