if not exist "%%a" (>>b.txt echo %%a) else copy /y "%%a" "F:%%~pa" >nul || pause & exit /b
这句的意思是:
如果文件不存在,则把文件路径输出到 b.txt。如果文件存在就执行 else 后面的语句了 —— 复制文件,而如果不成功的话就暂停接着退出。
14 楼的代码确实不会将“磁盘空间不足”时没有被复制的文件路径输出到 b.txt,只将不存在的文件路径输出到 b.txt。再试试以下代码:
[ Last edited by tireless on 2008-11-8 at 16:49 ]
这句的意思是:
如果文件不存在,则把文件路径输出到 b.txt。如果文件存在就执行 else 后面的语句了 —— 复制文件,而如果不成功的话就暂停接着退出。
14 楼的代码确实不会将“磁盘空间不足”时没有被复制的文件路径输出到 b.txt,只将不存在的文件路径输出到 b.txt。再试试以下代码:
@echo off
for /f "delims=" %%a in (a.txt) do (
if not exist "F:%%~pa" md "F:%%~pa"
if not exist "%%a" (>>b.txt echo %%a) else copy /y "%%a" "F:%%~pa" >nul || (
>>b.txt echo %%a
pause & exit /b
)
)[ Last edited by tireless on 2008-11-8 at 16:49 ]

