无忧启动论坛
标题:
求批量搜索并复制文件的批处理!
[打印本页]
作者:
huantaoyan
时间:
2008-11-21 15:23
标题:
求批量搜索并复制文件的批处理!
我想搜索特定文本文件中列出的所有文件,包括分区中的所有子目录
文本文件内容比如:
85541965.*
fjdyuhahj.*
dfjkfsidsi.*
456798.mpg
然后COPY到指定路径
这种批处理该如何写?
[
本帖最后由 huantaoyan 于 2008-11-21 15:24 编辑
]
作者:
haiou327
时间:
2008-11-21 16:26
85541965.*
fjdyuhahj.*
dfjkfsidsi.*
456798.mpg
复制代码
以上保存为
file
@echo off
for /f "tokens=*" %%a in (file) do (
for /f "tokens=*" %%i in ('dir /s/b/a-d %%a') do (
copy "%%~dpnxi"
d:
)
)
注
d:
为你想
COPY到指定路径
...
自行修改
....
[
本帖最后由 haiou327 于 2008-11-21 17:04 编辑
]
作者:
huantaoyan
时间:
2008-11-22 06:48
太感谢了,版主真是速度,现在已经能完成操作了,
请问"%%~dpnxi"是什么意思?
我想再得寸进尺的问一下,我现在把批处理改成
ECHO 在复制文件前请确保“保存文件名的文件”file和本程序在同一目录
set /p lj= 请输入要拷贝到的路径:
for /f "tokens=*" %%a in (song) do (
for /f "tokens=*" %%i in ('dir /s/b/a-d %%a') do (
copy "%%~dpnxi" %lj%
)
)
能不能把它改成可以选择 搜索路径,可以选择 保存文件名的文件的完整路径呢?
我加了set /p song=
但是不能指定 保存文件名的文件的完整路径 运行失败
[
本帖最后由 huantaoyan 于 2008-11-22 08:01 编辑
]
作者:
haiou327
时间:
2008-11-22 12:42
%%~dpnxi的意思是将%%i扩充到完整的路径文件名和扩展名,%%i仅为文件名不包括路径的扩展名的.详见:
~I - 删除任何引号("),扩充 %I
%~fI - 将 %I 扩充到一个完全合格的路径名
%~dI - 仅将 %I 扩充到一个驱动器号
%~pI - 仅将 %I 扩充到一个路径
%~nI - 仅将 %I 扩充到一个文件名
%~xI - 仅将 %I 扩充到一个文件扩展名
%~sI - 扩充的路径只含有短名
%~aI - 将 %I 扩充到文件的文件属性
%~tI - 将 %I 扩充到文件的日期/时间
复制代码
但是不能指定 保存文件名的文件的完整路径 运行失败
你的其中路径和文件名可能包含有空格,应该把完整路径用""引起来.....
"%lj%"
结合choice命令,可以实现选择 搜索路径.......
[
本帖最后由 haiou327 于 2008-11-22 15:37 编辑
]
作者:
huantaoyan
时间:
2008-11-22 20:24
我从接触CMD批处理开始,见别人好多能用到 %%i 但是我在论坛也找过关于此参数的文章,始终不明白是什么意思,版主大师能再给讲解一下吗
作者:
haiou327
时间:
2008-11-22 21:39
见本帖
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=128552&extra=page%3D1
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=128769&extra=page%3D1
作者:
huantaoyan
时间:
2008-11-23 00:12
好的,太感谢了,一定好好学习
作者:
huantaoyan
时间:
2008-11-23 09:41
可以了,嘎嘎,以完美实现选择分区和选择文件的批量搜索,不过我用了2个批处理结合使用的方法
作者:
czswuyou
时间:
2008-12-16 21:57
这几天在学习,终于明白了,谢谢了。
作者:
xiner888
时间:
2013-5-25 18:46
您好,拜读您的大作,有个问题请教一下:
@echo off
for /f "tokens=*" %%a in (file) do (
for /f "tokens=*" %%i in ('dir /s/b/a-d %%a') do (
copy "%%~dpnxi" d:
)
)
拷贝文件d:没有空间,怎么接着拷贝到e:和f:
谢谢
作者:
icevan
时间:
2013-5-25 21:01
xiner888 发表于 2013-5-25 18:46
您好,拜读您的大作,有个问题请教一下:
@echo off
for /f "tokens=*" %%a in (file) do (
我想那你该先检查有多少盘符,并且盘符可写,空间足够。
然后在执行后面的拷贝命令。
欢迎光临 无忧启动论坛 (http://wuyou.net/)
Powered by Discuz! X3.3