Board logo

标题: [文本处理] 批处理如何将含有关键词的文件移到其它文件夹? [打印本页]

作者: 屡败屡战    时间: 2017-8-28 11:02     标题: 批处理如何将含有关键词的文件移到其它文件夹?

本帖最后由 屡败屡战 于 2017-12-18 16:11 编辑

本人有很多txt、word文件,但是关键词不在文件名,而是在txt、word文件内容里面,批处理如何按照输入的关键词搜索出含有该关键词的txt、word文件,移动到其它文件夹。

另外关键词有很多,记录在关键词列表里,命名为a.txt。我想依据a.txt的关键词,将当前文件夹下(含子文件夹)里的含关键词的txt、word文件提取出来,移动到其它文件夹。这个对我来说很难,哪位大侠帮忙?
作者: Batcher    时间: 2017-8-28 14:45

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set "NewFolder=C:\目标文件夹"
  4. if not exist "%NewFolder%" (
  5.     md "%NewFolder%"
  6. )
  7. for /f "delims=" %%i in ('dir /b /s /a-d *.txt') do (
  8.     findstr /g:"C:\关键词列表.txt" "%%i" > nul
  9.     if !errorlevel! equ 0 (
  10.         move /y "%%i" "%NewFolder%"
  11.     )
  12. )
复制代码

作者: 屡败屡战    时间: 2017-8-28 16:34

老师好,测试下,很好用,但有些美中不足。
1、代码只支持単关键词,而当多关键词时,执行命令会一闪而过,问下多关键词用什么符号分隔?代码如何修改?
2、代码对word不起作用,俄主要是以word文档为主,不知道对word文档如何搜索且导出
作者: Batcher    时间: 2017-8-28 19:26

回复 3# 屡败屡战


1、一行一个关键词
2、word不是纯文本文件,BAT无法直接处理,需要借助其它脚本
作者: 屡败屡战    时间: 2017-8-28 19:56

老师冂不行啊,我多次测试,代码只支持单关键词,而一行一个关键词就不支持了。代码会一闪而过
作者: Batcher    时间: 2017-8-28 22:26

回复 5# 屡败屡战


希望大家在这个论坛学到的第一个知识点是,不要说“一闪而过”。
请看Q-06 http://bbs.bathome.net/thread-3473-1-1.html
作者: benbenlogo    时间: 2017-8-29 01:41

做个标记,好像蛮有用的样子




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