返回列表 发帖
本帖最后由 guaiwu 于 2011-10-3 15:42 编辑
if exist e:\abc\*%%a* (echo d|xcopy e:\abc\*%%a* D:\123 /s /e /y ) else echo %%a>>D:\123\error.txt
没发现这段有问题吗?
xcopy e:\abc\*%%a* D:\123 /s /e /y  
第一次:由于没发现定文件夹或文件,输入D选项确定是一个文件夹
第二次:输入D为无效。并出现创建新文件出错。
莫求昨天无悔,但愿今日无愧。

TOP

本帖最后由 guaiwu 于 2011-10-3 17:33 编辑
  1. @echo off
  2. for /f "delims=" %%a in (1.txt) do (
  3. for /f "delims=" %%i in ('dir /s /b e:\abc') do (
  4. echo %%~nxi | findstr %%a &&echo f | xcopy "%%~fi" "e:\123\%%~nxi" /s || echo %%~fi >>error.txt
  5. ))
  6. pause
复制代码
警告哦 这个批处理只能运行一次   运行多次是重名的
注意1.txt的文件名不能有冲突哦
1

评分人数

    • CrLf: 乐于助人,不过还可以提升一下效率PB + 5
莫求昨天无悔,但愿今日无愧。

TOP

回复 10# FOR
findstr /ivg:tem.txt 1.txt>d:\123\error.txt

请问 这句话起什么作用。  有两段findstr命令在findstr /?中找不到帮助?
莫求昨天无悔,但愿今日无愧。

TOP

本帖最后由 guaiwu 于 2011-10-4 23:52 编辑

回复 8# guaiwu

听取CrLf 的意见,加了班   到了12点终于研究出来粗成果。
参考下现在的效果
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%a in (1.txt) do (
  4. for /f "delims=" %%i in ('dir /s /b e:\abc') do (
  5. echo %%~nxi | findstr %%a &&echo f | xcopy "%%~fi" "e:\123\%%~nxi" /s
  6. ))
  7. set str1=dir /b E:\123
  8. set str2=dir /b E:\abc
  9. for %%a in ("%str1%" "%str2%") do (
  10. set /a b+=1
  11. for /f "delims=" %%i in ('%%a') do (
  12. set /a a+=1
  13. set _!a!=%%~nxi
  14. )
  15. set .!b!=!a!
  16. )
  17. set /a c=!.1!+1
  18. for /l %%i in (1,1,%.1%) do (
  19. for /l %%j in (!c!,1,%.2%) do (
  20. if !_%%i! equ !_%%j! (
  21. set _%%i= -
  22. )))
  23. for /l %%i in (1,1,%a%) do echo !_%%i!>>error.txt
  24. pause
复制代码
见到FOR做出的,没办法人家的水平只能到这。 别见笑
1

评分人数

莫求昨天无悔,但愿今日无愧。

TOP

回复 23# Batcher


CrLf有木有建议过你写代码的时候要使用缩进啊?

CrLf  并没有给我什么提示  我只是给自己写的代码升级了一下效率


不关效果什么样。  我不抄袭做出来的请别这么贬低别人好么。  
怎么说这是人家的花了时间心血写出来的。并不是随随便便。
莫求昨天无悔,但愿今日无愧。

TOP

返回列表