找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 51337|回复: 16

[文件操作] 求助批处理匹配关键字+复制+输出语句

[复制链接]
发表于 2021-9-15 03:55:14 | 显示全部楼层 |阅读模式
求帮助:
在网上找了2个代码,但组合不到一起,愁死人了
  1. cd /d E:\123\
  2. for /f "delims=" %%a in ('dir /a-d/s/b^|findstr /r "中国"') do xcopy  /d /y /e "%%a" "D:\456"
复制代码
  1. @Tasklist|查找并复制成功&&Echo 已经复制包含关键字“中国”的文件||Echo ★★☆☆没有查到相关文件!☆☆★★
复制代码
主要想实现的功能是:在某个指定的文件夹里查找包含某个关键词的文件,然后复制到另一个文件夹,复制成功就打印:“已经复制包含关键字“中国”的文件”,,,如果没找到文件就打印:“没有查到相关文件!”

请大神们帮帮忙,谢谢!
发表于 2021-9-15 06:41:09 | 显示全部楼层
回复 1# soykoa
dir找不到文件会自动提示;
copy复制成功也会提示。
所以不需特意输出语句:
  1. @echo off
  2. cd /d E:\123
  3. for /f "delims=" %%a in ('dir /b /s /a-d *中国*') do copy "%%a" "D:\456"
  4. pause
复制代码
发表于 2021-9-15 07:24:22 | 显示全部楼层

  1. @echo off&&setlocal enabledelayedexpansion
  2. set p=0
  3. cd /d E:\123\
  4. for /f "delims=" %%a in ('dir /a-d/b *') do findstr /r "中国" %%a&&set /a p+=1&&xcopy  /d /y /e "%%a" "D:\456"
  5. if !p! geq 1 (echo 找到!p!个) else (echo 没有找到)
  6. pause
复制代码
没有经过严格测试。
发表于 2021-9-15 10:06:32 | 显示全部楼层
你说的关键词是在文件名中还是文件中?
发表于 2021-9-15 10:24:45 | 显示全部楼层
去掉DIR  的/b 试试
 楼主| 发表于 2021-9-15 11:57:39 | 显示全部楼层
回复 4# qixiaobin0715


    是文件名,,,,在文件名中匹配关键字,查找文件,
发表于 2021-9-15 12:14:04 | 显示全部楼层
回复 6# soykoa
上面代码不行吗?
发表于 2021-9-15 12:20:25 | 显示全部楼层
不能用dir /s+findstr。如果路径文件夹中含有关键字也会被复制。
 楼主| 发表于 2021-9-15 12:34:24 | 显示全部楼层
回复 7# qixiaobin0715


    你的代码是对的,,,,测试过,,,,我主要是不想打印系统复制成功默认输出的结果,匹配的文件太多后,,,满屏全是“已复制       1个文件。”


想看看有没有什么办法,复制成功了,,,就打印A:共复制N个文件,,,没找到文件就打印B
 楼主| 发表于 2021-9-15 13:05:43 | 显示全部楼层
基本可以了,老师,,感谢,,,还有个小问题,,,如果我用xcopy  /d /y /e  每次都会提示复制13个文件,,,实际上是复制了13个吗?  xcopy /d,,,是增量复制,,,,文件我没有修改过,,,每次增量复制还是会提示搜索到的13个文件,,,他这里的“复制13个文件”,,,是说执行了13次吗?
 楼主| 发表于 2021-9-15 13:05:55 | 显示全部楼层
主要是需要增量复制
发表于 2021-9-15 14:34:31 | 显示全部楼层
回复 12# soykoa
没有研究过xcopy命令,不用for,直接复制不行吗:
  1. xcopy /d /y /e E:\123\*中国*.* D:\456
复制代码
发表于 2021-9-15 14:52:57 | 显示全部楼层
用for感觉是多此一举。
发表于 2021-9-15 15:41:29 | 显示全部楼层
回复 11# soykoa
还是要谢谢你,让我去认认真真的把xcopy命令研究了一番。
 楼主| 发表于 2021-9-15 16:24:07 | 显示全部楼层
直接用copy,,,全部要覆盖一次,,,,xcopy /d ,可以增量复制,,,没有修改过的文件,,日期相同,,就会忽略掉,不复制,,,挺方便的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-21 00:44 , Processed in 0.034116 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表