
批處理保留目錄結構移動在mac/linux下生成的*文件(夾)
nclick="copycode($('code0'));">復制代碼
- 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_USERControl PanelInternational /v sDate 2^>nul') do set sDate=%%a
- for /f tokens=3 %%a in ('REG QUERY HKEY_CURRENT_USERControl PanelInternational /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

