联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!
@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 ) )
@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 for /f "delims=:" %%? in ('findstr /n "%%a" a.txt') do more +%%? a.txt >> b.txt pause & exit /b ) )
Originally posted by lsjiang at 2008-11-9 12:27 AM: 18楼的代码测试与16楼的结果是一样的。也是只把最后一行没有拷贝成功的内容输出到了b.txt,显示了一行磁盘空间不足后,任意键就退出了。 麻烦再想想还没有有更好的方案?
copy /y "%%a" "F:%%~pa" >nul || ( >>b.txt echo %%a for /f "delims=:" %%? in ('findstr /n "%%a" a.txt') do more +%%? a.txt >> b.txt pause & exit /b )
@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 for /f "skip=2 delims=[]" %%i in ('find /n "%%a" a.txt') do more +%%i a.txt >> b.txt pause & exit /b ) )
@echo off for /f "delims=" %%a in (a.txt) do ( if not exist "%%a" (>>b.txt echo %%a) else ( if not exist "F:%%~pa" md "F:%%~pa" copy /y "%%a" "F:%%~pa" >nul || ( echo 正在输出未被复制的文件路径至 b.txt... >>b.txt echo %%a for /f "skip=2 delims=[]" %%i in ('find /n "%%a" a.txt') do ( set n=%%i goto end ) ) ) ) :end for /f "skip=%n% delims=" %%o in (a.txt) do echo %%o>>b.txt echo 输出完毕。请按任意键退出... pause>nul & exit /b