[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 批处理保留目录结构移动在 mac/linux 下生成的 .* 文件(夹)

  1. echo off & cls
  2. rem 作用:将 mac/linux 上生成的以 . 开头的文件(夹)按原目录结构移动到 ".\macShit\年月日_时分秒毫秒" 文件夹下
  3. rem 在 WinXP/Win7 下测试成功,运行完此批处理后,可打开 macShit 文件夹,里面的东西是删除、还是按原路径放回,就随自己了。
  4. rem 在 mac/linux 使用 U 盘后,到 windows 上会发现 U 盘里多了许多以 . 开头的文件或文件夹
  5. rem 这些都是 mac/linux 所建立的缓存文件、回收站 等等
  6. rem mac/linux 的缓存文件在 windows 上毫无用处
  7. rem 而回收站……用惯了 windows,在 U 盘里删除东西时已经做好了无法后悔的觉悟(无论如何想后悔的时候就用——EasyRecover)
  8. rem 于是这个批处理诞生了……
  9. setlocal enableextensions enabledelayedexpansion
  10. rem 获取 日期、时间,生成路径 "shitName"
  11. for /f "tokens=3" %%a in ('REG QUERY "HKEY_CURRENT_USER\Control Panel\International" /v sDate 2^>nul') do set "sDate=%%a"
  12. for /f "tokens=3" %%a in ('REG QUERY "HKEY_CURRENT_USER\Control Panel\International" /v sTime 2^>nul') do set "sTime=%%a"
  13. for /f "tokens=1-3 delims=%sDate% " %%a in ("%date%") do set "uDate=%%a%%b%%c"
  14. for /f "tokens=1-4 delims=%sTime%." %%a in ("%time%") do set "utime=%%a%%b%%c%%d"
  15. set "uDate=%uDate: =0%"
  16. set "uTime=%uTime: =0%"
  17. set "shitFolder=macShit"
  18. set "shitName=%shitFolder%\%uDate%_%uTime%"
  19. rem 遍历所有以 . 开头的 shit,并调用 :moveShit 将其移动
  20. for /f "tokens=* delims=" %%a in ('dir/b/s/a/og .*') do (
  21. rem 跳过本目录下的 %shifFolder% 文件夹
  22. echo %%a | findstr /i /r "\<%cd%\%shitFolder%" >nul2>nul || (
  23. call :moveShit "%%a"
  24. )
  25. )
  26. endlocal
  27. pause
  28. exit/b
  29. rem 按照原文件、目录结构移动到 "macShit\日期_时间" 文件夹下
  30. :moveShit
  31. set "newPath=%~d0\%shitName%%~p1"
  32. if exist "%~1". (
  33. if not exist "%newPath%". md "%newPath%"
  34. attrib -s -h -r "%~1"
  35. move "%~1" "%newPath%"
  36. echo moved: %~1
  37. )
  38. goto :eof
复制代码

enableextensions这个删掉也没有问题吧?

TOP

确实,在这里没有用到,习惯了一写批处理就把它打上去……

TOP

返回列表