set "file_route=%cd%" for /f "delims=" %%i in ('dir /a-d /b /s /oe') do ( set "nx_name=%%~nxi" call :build_dir %%~xi "%%~dpi" set file_type=%%~xi set "file_route=%%~dpi" ) goto :eof
rem ======= 按文件類型創建文件夾 ======= :build_dir set types=%1 set route=%2 set types=%types:~1% set "route=%route:~1,-1%" set "cd_name=%route:~0,-1%"
rem ======= 獲取文件所在的目錄名 ======= :get_cd_name set "cd_name_tmp=%cd_name:\=%" set "cd_name=%cd_name:*\=%" if not "%cd_name%"=="%cd_name_tmp%" goto get_cd_name
:: 通過對比文件類型名和目錄名來判斷哪些文件已經整理過 if "%cd_name%"=="%types%文件" goto :eof
:: 判斷文件所在位置是否發生了變化 if %2=="%file_route%" (set chang_dir=) else set chang_dir=yesset file_type=
:: 判斷要處理的文件是不是批處理文件自身 if "%route%%nx_name%"=="%~f0" (set file_self=yes) else set file_self=
:: 判斷文件類型是否發生了變化 if "%1"=="%file_type%" (set same_type=yes) else set same_type=