- @echo off
- setlocal enabledelayedexpansion
- set name=C:\Users\Administrator\Desktop\1\1\
-
- for /f "tokens=*" %%a in ('type test.txt') do (
- echo,%name%%%a>>2.txt
- )
-
- for /f "tokens=*" %%i in ('type 2.txt') do (
- xcopy "%%i" C:\Users\Administrator\Desktop\1\2\
- if !errorlevel! neq 0 (echo %%i>>失败.txt)
- )
-
- del 2.txt
- pause
复制代码 这是我弄的一个思路,可以正常复制文件,并且复制失败的时候会保留失败的路径单独放到一个txt文档。但是唯一的缺点是由于开启了延迟变量,导致屏蔽了带有感叹号的文件,比如我下载2!2.doc,他就会读取成22.doc,然后就理所当然的无法下载了。不仅是文件名,路径带有感叹号也是。
我查过有延迟变量的开启和关闭方法,但是如果把开启和关闭的语句写在循环里就有问题,具体情况请大佬复制代码去试试吧 |