标题: [文件操作] 如何将硬盘上含指定文本的Word文档自动复制到U盘中? [打印本页]
作者: tangqingfu 时间: 2013-5-29 18:36 标题: 如何将硬盘上含指定文本的Word文档自动复制到U盘中?
本帖最后由 tangqingfu 于 2013-5-29 18:38 编辑
请教如何通过Bat程序搜索硬盘上的所有Word文档,将所有含“初级焊工”、“水平测试”等文本的Word文档自动复制到U盘的名为“筛选”的文件夹中?
这里所有的U盘盘符是动态,比如说在一台电脑上U盘是G盘,在别一台电脑上U盘可能是H盘
作者: Batcher 时间: 2013-5-29 20:02
- @echo off
- set "str=c d e f g h i j k l m n o p q r s t u v w x y z"
- for %%a in (%str%) do (
- for /f %%h in ('fsutil fsinfo drivetype %%a:^|findstr "Removable.* 可移动"') do (
- set DriveU=%%h
- )
- )
- for %%a in (%str%) do (
- if exist %%a:\nul (
- pushd %%a:\
- for /r %%b in (*初级焊工*.doc* *水平测试*.doc*) do (
- copy /y "%%b" "%DriveU%\筛选"
- )
- popd
- )
- )
复制代码
作者: tangqingfu 时间: 2013-5-29 20:19
回复 2# Batcher
奇怪,我将bat文件放置在U盘中运行,运行后没发现在U盘有“筛选”的文件夹。
能否请版主帮我看一下是怎么回事?
作者: Batcher 时间: 2013-5-29 20:24
- @echo off
- set "str=c d e f g h i j k l m n o p q r s t u v w x y z"
- for %%a in (%str%) do (
- for /f %%h in ('fsutil fsinfo drivetype %%a:^|findstr "Removable.* 可移动"') do (
- set DriveU=%%h
- )
- )
- md "%DriveU%\筛选" 2>nul
- for %%a in (%str%) do (
- if exist %%a:\nul (
- pushd %%a:\
- for /r %%b in (*初级焊工*.doc* *水平测试*.doc*) do (
- copy /y "%%b" "%DriveU%\筛选"
- )
- popd
- )
- )
复制代码
作者: tangqingfu 时间: 2013-5-29 20:31
回复 4# Batcher
太谢谢了,这次通过了!
作者: tangqingfu 时间: 2013-5-29 20:37
回复 4# Batcher
不知能否添加一个计算bat程序运行的总时间的代码?
作者: tangqingfu 时间: 2013-5-29 20:55
回复 4# Batcher
如果要将U盘上含指定文本的Word文档自动复制到硬盘的指定路径下该如何编写?
作者: 522235677 时间: 2013-5-29 20:58
等文本的Word文档
文件名含有那些字,还是word中包含那些字?
作者: tangqingfu 时间: 2013-5-29 21:01
等文本的Word文档
文件名含有那些字,还是word中包含那些字?
522235677 发表于 2013-5-29 20:58
不是文件名,而是Word文档中包含的文本。
能否请兄台帮忙编写要将U盘上含指定文本的Word文档自动复制到硬盘的指定路径下的代码?。能否再添加个计算bat程序运行的总时间的代码(即从开始与结束的时间差)
作者: Batcher 时间: 2013-5-29 21:01
回复 6# tangqingfu
这里有函数,你自己试试吧。
http://www.bathome.net/thread-4701-1-1.html
作者: tangqingfu 时间: 2013-5-29 21:45
本帖最后由 tangqingfu 于 2013-5-29 22:17 编辑
回复 4# Batcher
原来测试还能成功,后面将U盘上的“筛选”文件夹删除,再运行bat代码,在CMD窗口中有复制动作,且可以在U盘中建立“筛选”文件夹,但该文件夹为空,没有任何文件,怎么回事?
作者: tangqingfu 时间: 2013-5-30 07:55
回复 4# Batcher
代码通过,无论是否对U盘进行重命名。
作者: AA_168 时间: 2013-5-31 22:39
都是神呀。
作者: tangqingfu 时间: 2013-6-4 14:06
回复 4# Batcher
经terse兄提醒,发现Batcher兄的代码是搜索的文件名,而不是文件内容。
请教如何将硬盘上所有Word文档内容中含有指定文本的Word文档自动复制到U盘中?
作者: Batcher 时间: 2013-6-4 15:34
回复 14# tangqingfu
不是已经有人帮你写了VBS代码了么
作者: tangqingfu 时间: 2013-6-4 16:30
本帖最后由 tangqingfu 于 2013-6-4 16:31 编辑
回复 15# Batcher
您是指http://www.bathome.net/thread-24657-1-1.html6楼的apang兄的代码吗?
测试过,感觉速度不是很快。不知您能否用bat代码编写一个在后台快速复制的代码?
作者: Batcher 时间: 2013-6-4 17:46
回复 16# tangqingfu
BAT本身无法直接处理word/excel之类的非纯文本文件
你可以请他把这个功能去掉看看是否能提高效率:
楼主没考虑文件重名的情况,如果有重名,则在文件名后依次加[1]、[2]等数字。
或者试试用BAT调用第三方命令行工具把word转换成txt,然后再处理,看看效率如何,参考:
http://www.bathome.net/thread-22123-1-1.html
http://www.bathome.net/thread-20046-1-1.html
http://www.bathome.net/thread-10929-1-1.html
作者: tangqingfu 时间: 2013-6-4 18:29
有些麻烦,只好作罢,谢谢Batcher兄!
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |