Board logo

标题: [文件操作] 【已解决】批处理怎样输入关键词识别文件,新建文件夹并将文件剪切至新建文件夹 [打印本页]

作者: kimpppg    时间: 2021-1-9 18:11     标题: 【已解决】批处理怎样输入关键词识别文件,新建文件夹并将文件剪切至新建文件夹

本帖最后由 kimpppg 于 2021-1-10 20:00 编辑

在当前目录,新建关键词文件夹,并将当前目录含关键词的文件剪切至新文件夹。参考了论坛里各种txt分类,运行输入关键词。想写个单一关键词的bat。但是,没运行。给我帮我看看吧。
  1. @echo off
  2. set A=%cd%
  3. set /p DD="请输入文件名称:"
  4. if not exist %DD% md %DD%
  5. for /f "delims=" %%1 in (“dir/S/B . | findstr /I %DD%”)do if /i not "%%1"=="DD"
  6. move /y "%%1" "%DD%"
  7.         
  8. pause
复制代码

作者: terse    时间: 2021-1-9 19:03

这里改下
  1. for /f "delims=" %%1 in ('dir/S/B . ^| findstr /I %DD%')do...
复制代码

作者: qixiaobin0715    时间: 2021-1-10 10:02

回复 1# kimpppg
循环变量要用字母表示,不要用数字设置(如%%1 %%9),这样会与系统参数相冲突。
作者: kimpppg    时间: 2021-1-10 14:59

回复 3# qixiaobin0715


    哦 听取意见。
作者: kimpppg    时间: 2021-1-10 15:00

回复 2# terse


    改了 ,没有用 只有新建文件夹,我继续思考
作者: qixiaobin0715    时间: 2021-1-10 15:29

本帖最后由 qixiaobin0715 于 2021-1-10 15:31 编辑

回复 4# kimpppg
什么叫“单一关键词”?包括子文件夹中的文件吗?
作者: terse    时间: 2021-1-10 18:04

我这边测试是可行的 把运行结果发来
  1. set /p DD="请输入文件名称:"
  2. if not exist %DD% md %DD%
  3. for /f "delims=" %%1 in ('dir/S/B/a-d . ^| findstr /I %DD%')  do if /i not "%%1"=="DD" move /y "%%1" "%DD%"
复制代码
回复 5# kimpppg
作者: kimpppg    时间: 2021-1-10 19:49

本帖最后由 kimpppg 于 2021-1-10 20:09 编辑

回复 7# terse


    可以了 是我没改仔细。谢谢
作者: kimpppg    时间: 2021-1-10 19:50

回复 6# qixiaobin0715
不是 是指不确定的关键词。论坛里有多个已知关键词的移动bat。但是我需要一个现输入现用的。
作者: qixiaobin0715    时间: 2021-1-10 21:36

本帖最后由 qixiaobin0715 于 2021-1-10 21:41 编辑

回复 9# kimpppg
如果所有文件都在当前文件夹,而不是有些在子文件夹,简单点,效率会高一点:
  1. @echo off
  2. set /p DD=请输入文件夹名称:
  3. if not exist %DD% md %DD%
  4. move "*%DD%*.*" "%DD%\"
  5. pause
复制代码

作者: kimpppg    时间: 2021-1-10 21:47

回复 10# qixiaobin0715


    好家伙 短小精悍 我还不够短;
作者: Batcher    时间: 2021-1-10 21:55

回复 11# kimpppg


短,不一定好。还是适合最重要。
  1. @echo off
  2. set /p "DD=请输入文件夹名称:"
  3. md "%DD%" 2>nul
  4. move "*%DD%*.*" "%DD%\"
复制代码
建议根据实际情况,多做一些异常判断。




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