[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
备份,文件大小大于n则记录文件大小,否则记录md5,不考虑大文件大小相同。
  1. @echo off
  2. set /a n=10*1024*1204
  3. (for /r %%i in (*) do (
  4. if "%%i" neq "%~f0" (
  5. if %%~zi gtr %n% (
  6. echo %%~zi^|%%~nxi
  7. ) else (
  8. for /f "delims=" %%a in ('certutil -hashfile "%%i" MD5 ^| find /v ":"') do echo %%a^|%%~nxi
  9. )
  10. )
  11. ))>back.txt
  12. pause
复制代码


恢复
  1. @echo off
  2. set /a n=10*1024*1204
  3. for /r %%i in (*) do (
  4. if "%%i" neq "%~f0" if "%%i" neq "%~dp0back.txt" (ren "%%i" "%%~nxi.$")
  5. )
  6. for /r %%i in (*.$) do (
  7. if %%~zi gtr %n% (
  8. for /f "tokens=1* delims=|" %%f in ('find "%%~zi|" ^<back.txt') do ren "%%i" "%%g"
  9. ) else (
  10. for /f "delims=" %%a in ('certutil -hashfile "%%i" MD5 ^| find /v ":"') do (
  11. for /f "tokens=1* delims=|" %%f in ('find "%%a|" ^<back.txt') do ren "%%i" "%%g"
  12. )
  13. )
  14. )
  15. pause
复制代码
1

评分人数

bat小白,请多指教!谢谢!

TOP

本帖最后由 77七 于 2023-9-8 22:31 编辑

回复 4# thp2008


  1. @echo off
  2. rem cmd 窗口执行 bh.bat back
  3. rem cmd 窗口执行 bh.bat huifi
  4. set /a n=10*1024*1204
  5. echo %~1
  6. goto :%~1
  7. exit /b
  8. :back
  9. (for /r %%i in (*) do (
  10. if /i not "%%~xi" equ ".bat" (
  11. if %%~zi gtr %n% (
  12. echo %%~zi^|%%~nxi
  13. ) else (
  14. for /f "delims=" %%a in ('certutil -hashfile "%%i" MD5 ^| find /v ":"') do echo %%a^|%%~nxi
  15. )
  16. )
  17. ))>"%temp%\back.txt"
  18. echo done
  19. "%temp%\back.txt"
  20. exit /b
  21. :huifu
  22. if not exist "%temp%\back.txt" (
  23. exit /b
  24. )
  25. for /r %%i in (*) do (
  26. if /i not "%%~xi" equ ".bat" (
  27. ren "%%i" "%%~nxi.$"
  28. )
  29. )
  30. for /r %%i in (*.$) do (
  31. if %%~zi gtr %n% (
  32. for /f "tokens=1* delims=|" %%f in ('find "%%~zi|" ^<"%temp%\back.txt"') do ren "%%i" "%%g"
  33. ) else (
  34. for /f "delims=" %%a in ('certutil -hashfile "%%i" MD5 ^| find /v ":"') do (
  35. for /f "tokens=1* delims=|" %%f in ('find "%%a|" ^<"%temp%\back.txt"') do ren "%%i" "%%g"
  36. )
  37. )
  38. )
  39. echo done
  40. exit /b
复制代码


恢复之后不会删除back.txt,备份一次,可以多次恢复。不考虑 ”大文件“ 大小相同,不考虑0字节文件。
1

评分人数

    • thp2008: 这种方式,很好,还支持中文文件名技术 + 1
bat小白,请多指教!谢谢!

TOP

加上一个什么 pushd  %~dp0 什么的

站内搜一下,给鼠标右键菜单添加 打开cmd,直接在需要的目录下打开cmd窗口执行就行了。
bat小白,请多指教!谢谢!

TOP

返回列表