标题: [文件操作] [已解决]批处理怎样读取文件列表,将指定文件拷贝到文件夹里? [打印本页]
作者: ifer 时间: 2010-5-11 17:42 标题: [已解决]批处理怎样读取文件列表,将指定文件拷贝到文件夹里?
有一个文件列表,可以加入到批处理中,可以让批处理读取txt文件,然后把这个列表里指定的文件拷贝到C:\fenxi文件夹里,先创建fenxi文件夹。
如果遇到文件不存在,则跳过。
就这么个功能,小妹不知道怎么写了 谢谢大家!
[ 本帖最后由 ifer 于 2010-5-14 14:53 编辑 ]
作者: namejm 时间: 2010-5-11 19:49
请给出文件列表的具体内容,而不是泛泛而谈有这么一个文件列表,并明确指出哪些文件是需要复制的,数据格式决定了代码的编写。
作者: jcy0307 时间: 2010-5-11 23:02
- @echo off
- echo 按任意键开始复制
- pause>nul
- for /f "delims=" %%i in (文件列表.txt) do if exist %%i copy %%i C:\fenxi
- pause
复制代码
作者: sgaizxt001 时间: 2010-5-11 23:22
楼上代码用%%~fi会不会比较好一点?
作者: hanyeguxing 时间: 2010-5-11 23:33
- @echo off
- if not exist "C:\fenxi\" md "C:\fenxi\"
- for /f "usebackq delims=" %%a in ("列 表.txt") do if exist "%%~fa" copy "%%~fa" "C:\fenxi\"
复制代码
要求“列 表.txt”:
1,每行一个文件完整路径
2,文本必须是ANSI编码
[ 本帖最后由 hanyeguxing 于 2010-5-12 12:49 编辑 ]
作者: ifer 时间: 2010-5-12 10:12
我的TXT文档里就是以下内容,截取部分:
C:\WINDOWS\SYSTEM32\MSI.DLL
C:\WINDOWS\SYSTEM32\MSSVP.DLL
C:\WINDOWS\SYSTEM32\XPSRCHVW.EXE
C:\WINDOWS\SYSTEM32\WMPLOC.DLL
谢谢楼上几位,我先试试各位的方法。
作者: hanyeguxing 时间: 2010-5-12 12:15
原帖由 ifer 于 2010-5-12 10:12 发表
我的TXT文档里就是以下内容,截取部分:
C:\WINDOWS\SYSTEM32\MSI.DLL
C:\WINDOWS\SYSTEM32\MSSVP.DLL
C:\WINDOWS\SYSTEM32\XPSRCHVW.EXE
C:\WINDOWS\SYSTEM32\WMPLOC.DLL
谢谢楼上几位,我先试试各位的 ...
如果列表中都是C:\WINDOWS\SYSTEM32\*的文件,可以直接写成:
MSI.DLL
MSSVP.DLL
XPSRCHVW.EXE
WMPLOC.DLL
批处理:- @echo off
- set "h=C:\fenxi\"&set "y=%windir%\system32\%%a"
- if not exist "%h%" md "%h%"
- for /f "usebackq delims=" %%a in ("列 表.txt") do if exist "%y%" copy "%y%" "%h%"
复制代码
也可以把列表内容直接放到批处理:- @echo off
- set "h=C:\fenxi\"
- if not exist "%h%" md "%h%"
- for /f "delims=" %%a in ('more +5^<"%~fs0"') do if exist "%%~fa" copy "%%~fa" "%h%"
- exit
- ;下面为要复制的文件列表
- C:\WINDOWS\SYSTEM32\MSI.DLL
- C:\WINDOWS\SYSTEM32\MSSVP.DLL
- C:\WINDOWS\SYSTEM32\XPSRCHVW.EXE
- C:\WINDOWS\SYSTEM32\WMPLOC.DLL
复制代码
或:- @echo off
- set "h=C:\fenxi\"&set "y=%windir%\system32\%%a"
- if not exist "%h%" md "%h%"
- for /f "delims=" %%a in ('more +5^<"%~fs0"') do if exist "%y%" copy "%y%" "%h%"
- exit
- ;下面为要复制的文件列表
- ;每一行的最前面和最后面不能有空格
- MSI.DLL
- MSSVP.DLL
- XPSRCHVW.EXE
- WMPLOC.DLL
复制代码
如果文件名中没有空格逗号分号等,可以:- @echo off
- set "h=C:\fenxi\"&set "y=%windir%\system32\%%a"
- if not exist "%h%" md "%h%"
- set "n=MSI.DLL MSSVP.DLL XPSRCHVW.EXE WMPLOC.DLL"
- for %%a in (%n%) do if exist "%y%" copy "%y%" "%h%"
复制代码
[ 本帖最后由 hanyeguxing 于 2010-5-12 12:53 编辑 ]
作者: ifer 时间: 2010-5-14 14:52
非常感谢各位哥哥的指导,特别是楼上提供的多种方案,昨天已经解决问题!
作者: lianjl 时间: 2010-5-16 17:05
不错,进来学习了.
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |