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