[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] [已解决]批处理怎样读取文件列表,将指定文件拷贝到文件夹里?

有一个文件列表,可以加入到批处理中,可以让批处理读取txt文件,然后把这个列表里指定的文件拷贝到C:\fenxi文件夹里,先创建fenxi文件夹。


如果遇到文件不存在,则跳过。

就这么个功能,小妹不知道怎么写了   谢谢大家!

[ 本帖最后由 ifer 于 2010-5-14 14:53 编辑 ]
1

评分人数

    • Batcher: 感谢主动给标题标注[已解决]字样PB + 2

  请给出文件列表的具体内容,而不是泛泛而谈有这么一个文件列表,并明确指出哪些文件是需要复制的,数据格式决定了代码的编写。
尺有所短寸有所长,学好批处理没商量;
考虑问题复杂化,解决问题简洁化。

心在天山,身老沧州。

TOP

  1. @echo off
  2. echo 按任意键开始复制
  3. pause>nul
  4. for /f "delims=" %%i in (文件列表.txt) do if exist %%i copy %%i C:\fenxi
  5. pause
复制代码
1

评分人数

TOP

楼上代码用%%~fi会不会比较好一点?
努力学习,努力挣分

TOP

  1. @echo off
  2. if not exist "C:\fenxi\" md "C:\fenxi\"
  3. 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 编辑 ]
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

我的TXT文档里就是以下内容,截取部分:

C:\WINDOWS\SYSTEM32\MSI.DLL
C:\WINDOWS\SYSTEM32\MSSVP.DLL
C:\WINDOWS\SYSTEM32\XPSRCHVW.EXE
C:\WINDOWS\SYSTEM32\WMPLOC.DLL

谢谢楼上几位,我先试试各位的方法。

TOP

原帖由 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
批处理:
  1. @echo off
  2. set "h=C:\fenxi\"&set "y=%windir%\system32\%%a"
  3. if not exist "%h%" md "%h%"
  4. for /f "usebackq delims=" %%a in ("列 表.txt") do if exist "%y%" copy "%y%" "%h%"
复制代码
也可以把列表内容直接放到批处理:
  1. @echo off
  2. set "h=C:\fenxi\"
  3. if not exist "%h%" md "%h%"
  4. for /f "delims=" %%a in ('more +5^<"%~fs0"') do if exist "%%~fa" copy "%%~fa" "%h%"
  5. exit
  6. ;下面为要复制的文件列表
  7. C:\WINDOWS\SYSTEM32\MSI.DLL
  8. C:\WINDOWS\SYSTEM32\MSSVP.DLL
  9. C:\WINDOWS\SYSTEM32\XPSRCHVW.EXE
  10. C:\WINDOWS\SYSTEM32\WMPLOC.DLL
复制代码
或:
  1. @echo off
  2. set "h=C:\fenxi\"&set "y=%windir%\system32\%%a"
  3. if not exist "%h%" md "%h%"
  4. for /f "delims=" %%a in ('more +5^<"%~fs0"') do if exist "%y%" copy "%y%" "%h%"
  5. exit
  6. ;下面为要复制的文件列表
  7. ;每一行的最前面和最后面不能有空格
  8. MSI.DLL
  9. MSSVP.DLL
  10. XPSRCHVW.EXE
  11. WMPLOC.DLL
复制代码
如果文件名中没有空格逗号分号等,可以:
  1. @echo off
  2. set "h=C:\fenxi\"&set "y=%windir%\system32\%%a"
  3. if not exist "%h%" md "%h%"
  4. set "n=MSI.DLL MSSVP.DLL XPSRCHVW.EXE WMPLOC.DLL"
  5. for %%a in (%n%) do if exist "%y%" copy "%y%" "%h%"
复制代码

[ 本帖最后由 hanyeguxing 于 2010-5-12 12:53 编辑 ]
1

评分人数

寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

非常感谢各位哥哥的指导,特别是楼上提供的多种方案,昨天已经解决问题!

TOP

不错,进来学习了.

TOP

返回列表