标题: [文件操作] 百度求得找寻关键字并复制文件的批处理,执行遇到问题。 [打印本页]
作者: qw8334936 时间: 2015-3-1 07:57 标题: 百度求得找寻关键字并复制文件的批处理,执行遇到问题。
本人百度知道求得一代吗,但执行起来却遇到一点问题。目录结构什么的都没问题,就是执行的时候 会将所有文件都复制到 第一个关键字目录下。
以下是代码 和要求。
我找到一个批处理,可以获取文件路径并保存为 a.txt 然后调用a.txt编辑后,执行复制到 请输入目标 的这么个批处理。但是我想可不可以让他自己在 a.txt文件中 自动找寻关键字 并复制到 相对应的目标下(没有自动创建)
无关键字的 就分类到目标根目录。(abc为不特性文件夹,*号为不确定字符 )
比如 a.txt中文件为 复制到 目标
D:\a\b\c\**周星驰**功夫1** ---- 目标\周星驰\
D:\a\b\c\**周星驰**鹿鼎记** ----- 目标\周星驰\
D:\a\b\c\**李连杰**少林寺** -----目标\李连杰\
D:\a\bc\c\***无关键字**** -----目标\
备注:
关键字,在批处理内设置,源文件为当前目录下含子目录。
目标为 用户(我)自行输入的
悬赏50分跪求。再悬赏50分,求解答 如何做到的关键字搜索。
得到代码如下(代码开始几行被我改了下,为了美观)- @echo off&setlocal enabledelayedexpansion&COLOR 0a&echo+&title ^|%~n0^|
-
- del list.txt 2>nul
- ::设置源文件根目录
- set dir=%cd%
- cls
- dir /a-d/s/b "%dir%\">list.txt
- echo+
- echo+
- echo+ ╔═══════【文件整理工具】════════╗
- echo+ ║ 对当前目录下文件根据输入的关键字自动分类 ║
- echo+ ╠----------------------------------------------╣
- echo+ ║ 关键字之间用英文“,”分隔 例如 成龙,李连杰 ║
- echo+ ╠----------------------------------------------╣
- echo+ ║ 注意:有空格的药用""括起 例如 "回 访" ║
- echo+ ╚═══════════════════════╝
- ::请设置关键字,每个关键字之间用英文逗号隔开,
- ::关键字有空格的,把关键字用英文双引号括起来,如"mei mei"
- echo+
- echo+请在编辑列表后输入关键字:
- ::为了方便我查看我调用了下。
- call list.txt
- set "gjz="&set /p gjz=
- ::加了一个空关键词 重启
- if "!gjz!"=="" (endlocal&%~s0&exit)
-
- set/p mb=请输入目标后回车确认:
- ::同样是我加的 无关键字 设置为当前目录 以下都是源代码
- if "!mb!"=="" set mb=%cd%
- for %%a in (%gjz%) do (
- findstr /i /c:"%%~a" list.txt>>exist1.txt
- set/p e=<exist1.txt
- if defined e (
- findstr /v /i /c:"%%~a" list.txt>>exist2.txt
- move exist2.txt list.txt>nul
-
- md "%mb%\%%~a"
- for /f "delims=" %%b in ('type exist1.txt') do move "%%~b" "%mb%\%%~a\"
- del exist1.txt 2>nul
- )
- del exist*.txt 2>nul
- )
- ::for /f "delims=" %%a in ('type list.txt') do move "%%~a" "%mb%\"
- del list.txt 2>nul
- start "" !mb!
复制代码
作者: qw8334936 时间: 2015-3-1 08:42
刚刚又允许了几遍 好像是和目录名有关系
比如源目录为 d\a\c 关键字为c 则 文件夹C下的文件就全复制过去了, 可不可以只搜索批处理运行的目录下 的文件名复制或者移动呢
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |