
标题: [文件操作] 已解决 求问怎么样分文件的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 - @echo off
- for %%i in (*冏*) do (
- for /f "tokens=1 delims=冏" %%a in ("%%i") do (
- if not exist "%%a" md "%%a"
- move "%%i" "%%a"
- )
- )
- 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循环的写法:- @echo off
- for /f "tokens=1* delims=冏" %%a in ('dir /b /a-d *冏*') do (
- if not exist "%%a" (
- md "%%a"
- )
- move "%%a冏%%b" "%%a"
- )
复制代码
作者: 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://bbs.bathome.net/) |
Powered by Discuz! 7.2 |