Sunday, 24 May 2026

Windows Download sorter batch file

 @echo off

title Downloads Sorter
setlocal enabledelayedexpansion


goto top

:reset
if "%1"=="" (cls & echo You cannot goto :reset, use 'call :reset *random letter*' & pause)
set compressedToggle=
set videoToggle=
set audioToggle=
set imageToggle=
set documentsToggle=
set exeToggle=
set tdToggle=
goto :eof

:top

call :reset f
cls
echo.
echo Check where download folder is;
SET username22=akendrick451
:: =============================================
:: Configuration
:: =============================================
:: Folders to exclude (case-insensitive)
set "Excluded=Documents Videos Images Other Compressed Audio Images Exe 3D"

if exist "E:\Users\%username22%\Downloads\" (
    SET DownloadFolder=E:\Users\%username22%\Downloads
) else  (
    SET DownloadFolder=C:\Users\akend\Downloads
)
set OtherFolder=%DownloadFolder%\Other

echo Got downlod folder at location...
echo %DownloadFolder%
pause
goto types

 
:types
set compressedToggle=X
set videoToggle=X
set audioToggle=X
set imageToggle=X
set documentsToggle=X
set exeToggle=X
set tdToggle=X
set foldersToggle=X


goto runScan


:runScan
cls
if "%compressedToggle%"=="X" call :sortCompressed
if "%videoToggle%"=="X" call :sortVideo
if "%audioToggle%"=="X" call :sortAudio
if "%imageToggle%"=="X" call :sortImage
if "%documentsToggle%"=="X" call :sortDocuments
if "%exeToggle%"=="X" call :sortExe
if "%tdToggle%"=="X" call :sortTD
call :sortOther

goto done

:sortCompressed
echo Sorting Compressed...
if not exist "%DownloadFolder%Compressed" md "%DownloadFolder%Compressed" >nul
echo  compressed 1
for %%A in ("%DownloadFolder%*.rar") do move "%%A" "%DownloadFolder%Compressed\" >nul
echo  compressed 2
for %%A in ("%DownloadFolder%*.7z") do move "%%A" "%DownloadFolder%Compressed\" >nul
echo  compressed 3
for %%A in ("%DownloadFolder%*.zip") do move "%%A" "%DownloadFolder%Compressed\" >nul
echo ("%DownloadFolder%*.zip")
echo  compressed 4
goto :eof

:sortVideo
REM 3gp, f4v, flv, h264, mov, mp4, mpeg, mpg, webm

echo Sorting Videos...
if not exist "%DownloadFolder%Videos" md "%DownloadFolder%Videos" >nul
for %%A in ("%DownloadFolder%*.3gp") do move "%%A" "%DownloadFolder%Videos\" >nul
for %%A in ("%DownloadFolder%*.f4v") do move "%%A" "%DownloadFolder%Videos\" >nul
for %%A in ("%DownloadFolder%*.flv") do move "%%A" "%DownloadFolder%Videos\" >nul
for %%A in ("%DownloadFolder%*.h264") do move "%%A" "%DownloadFolder%Videos\" >nul
for %%A in ("%DownloadFolder%*.mov") do move "%%A" "%DownloadFolder%Videos\" >nul
for %%A in ("%DownloadFolder%*.mp4") do move "%%A" "%DownloadFolder%Videos\" >nul
for %%A in ("%DownloadFolder%*.mpeg") do move "%%A" "%DownloadFolder%Videos\" >nul
for %%A in ("%DownloadFolder%*.mpg") do move "%%A" "%DownloadFolder%Videos\" >nul
for %%A in ("%DownloadFolder%*.webm") do move "%%A" "%DownloadFolder%Videos\" >nul
goto :eof

:sortAudio
REM (mp3, wav, m4a, ogg, wma)

echo Sorting Audio...
if not exist "%DownloadFolder%Audio\" md "%DownloadFolder%Audio\" >nul
for %%A in ("%DownloadFolder%*.mp3") do move "%%A" "%DownloadFolder%Audio\" >nul
for %%A in ("%DownloadFolder%*.wav") do move "%%A" "%DownloadFolder%Audio\" >nul
for %%A in ("%DownloadFolder%*.m4a") do move "%%A" "%DownloadFolder%Audio\" >nul
for %%A in ("%DownloadFolder%*.ogg") do move "%%A" "%DownloadFolder%Audio\" >nul
for %%A in ("%DownloadFolder%*.wma") do move "%%A" "%DownloadFolder%Audio\" >nul
goto :eof

:sortImage
REM (bmp, ico, jpeg, jpg, png, tga, tif, tiff)

echo Sorting Images...
if not exist "%DownloadFolder%Images\" md "%DownloadFolder%Images\" >nul
for %%A in ("%DownloadFolder%*.bmp") do move "%%A" "%DownloadFolder%Images\" >nul
for %%A in ("%DownloadFolder%*.ico") do move "%%A" "%DownloadFolder%Images\" >nul
for %%A in ("%DownloadFolder%*.jpeg") do move "%%A" "%DownloadFolder%Images\" >nul
for %%A in ("%DownloadFolder%*.jpg") do move "%%A" "%DownloadFolder%Images\" >nul
for %%A in ("%DownloadFolder%*.png") do move "%%A" "%DownloadFolder%Images\" >nul
for %%A in ("%DownloadFolder%*.tga") do move "%%A" "%DownloadFolder%Images\" >nul
for %%A in ("%DownloadFolder%*.tif") do move "%%A" "%DownloadFolder%Images\" >nul
for %%A in ("%DownloadFolder%*.tiff") do move "%%A" "%DownloadFolder%Images\" >nul
goto :eof

:sortDocuments
REM doc, docm, docx, pdf, rtf, xls, xml, txt

echo Sorting Documents...
if not exist "%DownloadFolder%Documents\" md "%DownloadFolder%Documents\" >nul
for %%A in ("%DownloadFolder%*.doc") do move "%%A" "%DownloadFolder%Documents\" >nul
for %%A in ("%DownloadFolder%*.docx") do move "%%A" "%DownloadFolder%Documents\" >nul
for %%A in ("%DownloadFolder%*.docm") do move "%%A" "%DownloadFolder%Documents\" >nul
for %%A in ("%DownloadFolder%*.pdf") do move "%%A" "%DownloadFolder%Documents\" >nul
for %%A in ("%DownloadFolder%*.rtf") do move "%%A" "%DownloadFolder%Documents\" >nul
for %%A in ("%DownloadFolder%*.xls") do move "%%A" "%DownloadFolder%Documents\" >nul
for %%A in ("%DownloadFolder%*.xlsx") do move "%%A" "%DownloadFolder%Documents\" >nul
for %%A in ("%DownloadFolder%*.xml") do move "%%A" "%DownloadFolder%Documents\" >nul
for %%A in ("%DownloadFolder%*.txt") do move "%%A" "%DownloadFolder%Documents\" >nul
echo ...Sorting epubs..
for %%A in ("%DownloadFolder%*.epub") do move "%%A" "%DownloadFolder%Documents\"
echo ...Sorting pptx..
for %%A in ("%DownloadFolder%*.pptx") do move "%%A" "%DownloadFolder%Documents\" >nul
for %%A in ("%DownloadFolder%*.csv") do move "%%A" "%DownloadFolder%Documents\" >nul
goto :eof

:sortExe

echo Sorting Exe/Installers...
if not exist "%DownloadFolder%Exe\" md "%DownloadFolder%Exe\" >nul
for %%A in ("%DownloadFolder%*.exe") do move "%%A" "%DownloadFolder%Exe\" >nul
for %%A in ("%DownloadFolder%*.msi") do move "%%A" "%DownloadFolder%Exe\" >nul
goto :eof

:sortTd
REM c4d, blend, 3ds, max, obj, fbx

echo Sorting 3D...
if not exist "%DownloadFolder%3D\" md "%DownloadFolder%3D\" >nul
for %%A in ("%DownloadFolder%*.c4d") do move "%%A" "%DownloadFolder%3D\" >nul
for %%A in ("%DownloadFolder%*.blend") do move "%%A" "%DownloadFolder%3D\" >nul
for %%A in ("%DownloadFolder%*.3ds") do move "%%A" "%DownloadFolder%3D\" >nul
for %%A in ("%DownloadFolder%*.max") do move "%%A" "%DownloadFolder%3D\" >nul
for %%A in ("%DownloadFolder%*.obj") do move "%%A" "%DownloadFolder%3D\" >nul
for %%A in ("%DownloadFolder%*.fbx") do move "%%A" "%DownloadFolder%3D\" >nul
goto :eof

:sortOther
echo Sorting Other
if not exist "%DownloadFolder%Other\" md "%DownloadFolder%Other\" >nul
for %%A in ("%DownloadFolder%*.ics") do move "%%A" "%DownloadFolder%Other\" >nul
for %%A in ("%DownloadFolder%\*") do (
    echo move "%%A" "%DownloadFolder%Other\" >nul
    move "%%A" "%DownloadFolder%Other\" >nul
)
for /d %%D in ("%DownloadFolder%\*") do (
    set "FolderName=%%~nD"
    set "MoveThis=1"


    for %%E in (%Excluded%) do (
        if /i "!FolderName!"=="%%E" set "MoveThis=0"
    )
   
    if "!MoveThis!"=="1" (
           echo move "%%D" "%OtherFolder%"
        move "%%D" "%OtherFolder%" >nul
    )
)
goto :eof


:done
echo.
echo Done. All files should be sorted!
echo.
echo If it didn't work how you wanted, right click on "Downloads" folder,
echo click properties, and Previous Versions. You might be able to restore
echo the moves from a previous version.
pause
goto top

No comments: