Board logo

标题: [文件操作] 已解决 求问怎么样分文件的bat [打印本页]

作者: 8532200    时间: 2021-3-29 10:21     标题: 已解决 求问怎么样分文件的bat

本帖最后由 8532200 于 2021-4-1 09:24 编辑

有几千个文件

每个文件包含一个关键词作为分割符

比如

异域-11番小队黑执事 Black Butler冏[BDRIP][720P][X264-10bit_AAC]01.mkv
异域-11番小队黑执事 Black Butler冏[BDRIP][720P][X264-10bit_AAC]02.mkv
异域-11番小队黑执事 Black Butler冏[BDRIP][720P][X264-10bit_AAC]03.mkv

把冏字前面的文件全部放进一个       异域-11番小队黑执事 Black Butler   的文件夹


女子高中生的日常囧   [DHR][Joshikousei no Mudazukai][01-12][BIG5][720P][AVC_AAC][MP4]01.mp4

把冏字前面的文件全部放进一个       女子高中生的日常   的文件夹


全部文件都是这样,有一个冏字作为关键词

求帮忙
作者: qixiaobin0715    时间: 2021-3-29 10:54

回复 1# 8532200
  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
复制代码

作者: 8532200    时间: 2021-3-29 11:10

回复 2# qixiaobin0715


    之前求过一次,

代码是这个

@echo off
setlocal enabledelayedexpansion
for /r %%i in ("*.*")do (
  set "Name=%%~nxi"
  if "!Name:~-8,1!" == "-" (
    if not exist "!Name:~0,-8!" md "!Name:~0,-8!"
    move /-y "%%i" "!Name:~0,-8!"
  ) else (
    if not exist "!Name:~0,-7!" md "!Name:~0,-7!"
    move /-y "%%i" "!Name:~0,-7!"
  )
)
pause



但是不好用,不够智能

你这个完美解决了按照关键词分类文件夹的

测试了一下。。目前还是没有任何问题

谢谢你
作者: Batcher    时间: 2021-3-29 11:29

回复 2# qixiaobin0715


一层for循环的写法:
  1. @echo off
  2. for /f "tokens=1* delims=冏" %%a in ('dir /b /a-d *冏*') do (
  3.     if not exist "%%a" (
  4.         md "%%a"
  5.     )
  6.     move "%%a冏%%b" "%%a"
  7. )
复制代码

作者: qixiaobin0715    时间: 2021-3-29 11:42

这样效率更高些。
作者: qixiaobin0715    时间: 2021-3-29 12:38

回复 3# 8532200
那是因为你的描述有差异。
作者: 8532200    时间: 2021-3-29 12:50

回复 6# qixiaobin0715


    是的。。之前求得不是按关键词。。。所以没办法完美解决
作者: qixiaobin0715    时间: 2021-3-30 07:08

本帖最后由 qixiaobin0715 于 2021-3-30 09:49 编辑

如果其他需求相同,关键词是两个或以上的字符,如“囧途”,且其前后可能存在“关键词”的单个字符,可能就需要多一个步骤。




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