ok here u go
brute force delete.bat
@echo off
setLocal EnableDelayedExpansion
:: SCRIPT PARAMETERS
SET USRNAM=Administrator
SET DRVNAM=j
SET SRCFIL=BFDel_List.txt
::SET SRCFIL=%~1
SET BACKUP=N
::SET BAKDST=Z:\BFDel_Backup
SET TKOWN=Y
SET SILENT=Y
SET LOGDST=%BAKDST%
SET LOGFIL=%LOGDST%\BFDel.log
SET BAKLOG=%LOGDST%\BFDel.bak.log
SET ERRLOG=%LOGDST%\BFDel.err.log
:: CHECK BACKUP AND LOG PATHS
IF /I "%BACKUP%" EQU "Y" (
IF NOT EXIST "%BAKDST%\" MKDIR "%BAKDST%\"
IF NOT EXIST "%BAKDST%\" ECHO. & ECHO ERROR BACKUP PATH DOES NOT EXIST & ECHO. & EXIT
)
IF NOT EXIST "%LOGDST%\" ECHO. & ECHO ERROR LOG PATH DOES NOT EXIST & ECHO. & EXIT
IF EXIST "%LOGFIL%" DEL /f /q "%LOGFIL%"
IF EXIST "%ERRLOG%" DEL /f /q "%ERRLOG%"
:: CHECK SOURCEFILE PATHS
IF NOT EXIST "%SRCFIL%" ECHO. & ECHO ERROR SOURCE PATH DOES NOT EXIST & ECHO. & EXIT
cls
@echo off
:again
echo.
echo Brute Force Delete files on vol %DRVNAM%:\
echo Files List "%SRCFIL%"
echo.
IF /I "%SILENT%" EQU "Y" ECHO NOTE: SCRIPT IS RUNNING SILENTLY & ECHO. & TIMEOUT 2 > NUL & GOTO continue
echo Choose continue or edit volume letter or quit.
echo.
set /p answer=Type [C]ontinue, [E]dit or [Q]uit?
if /i "%answer:~,1%" EQU "C" goto continue
if /i "%answer:~,1%" EQU "E" goto edit
if /i "%answer:~,1%" EQU "Q" exit /b
goto again
:edit
echo. & echo.
echo SET THE CORRECT VOLUME: %DRVNAM%
echo.
set /p "DRVNAM=Enter Volume Letter or just ENTER for default [%DRVNAM%]: "
goto again
:: START DEL PROCEDURE
:continue
For /F "tokens=*" %%L in ('type "%SRCFIL%"') do (
Set LINE=!DRVNAM!:%%L
Set LINE=!LINE:USRNAM=%USRNAM%!
:: CALL :CheckPathAttr "!LINE!"
for /f "tokens=*" %%A in ("!LINE!") do set ATTR=%%~aA
set ATTR1=!ATTR:~0,1!
::PROCESS DIRECTORY
IF /I "!ATTR1!" EQU "d" (
IF /I "%TKOWN%" EQU "Y" TAKEOWN /F "!LINE!" /R /A /D Y
IF /I "%TKOWN%" EQU "Y" ICACLS "!LINE!" /T /L /GRANT *S-1-1-0:F
IF /I "%BACKUP%" EQU "Y" (
XCOPY /s /y /c /h /e "!LINE!" "%BAKDST%!LINE:~2!\"
IF EXIST "%BAKDST%!LINE:~2!" echo COPIED DIR: "!LINE!">>"%BAKLOG%"
IF NOT EXIST "%BAKDST%!LINE:~2!" echo COPY.ERR DIR: "!LINE!">>"%ERRLOG%"
)
:: REMOVE DIR COMMAND
rmdir /s /q "!LINE!"
IF NOT EXIST "!LINE!" (
echo DELETED DIR: "!LINE!">>"%LOGFIL%"
) ELSE (
echo DEL.ERR DIR: "!LINE!">>"%ERRLOG%"
)
)
::PROCESS FILE
IF /I "!ATTR1!" EQU "-" (
IF /I "%TKOWN%" EQU "Y" TAKEOWN /F "!LINE!" /A /D Y
IF /I "%TKOWN%" EQU "Y" ICACLS "!LINE!" /T /L /GRANT *S-1-1-0:F
IF /I "%BACKUP%" EQU "Y" (
echo F|XCOPY /y /c "!LINE!" "%BAKDST%!LINE:~2!"
IF EXIST "%BAKDST%!LINE:~2!" echo COPIED FILE: "!LINE!">>"%BAKLOG%"
IF NOT EXIST "%BAKDST%!LINE:~2!" echo COPY.ERR FIL: "!LINE!">>"%ERRLOG%"
)
:: DEL FILE COMMAND
del /f /q "!LINE!"
IF NOT EXIST "!LINE!" (
echo DELETED FILE: "!LINE!">>"%LOGFIL%"
) ELSE (
echo DEL.ERR FILE: "!LINE!">>"%ERRLOG%"
)
)
)
ECHO.
ECHO SCRIPT COMPLETED
ECHO.
::https://9to5answer.com/how-to-get-attributes-of-a-file-using-batch-file
:CheckPathAttr
SET "sPATH=%1"
SET "sATTR=%~a1"
SET "sATTR1=!sATTR:~0,1!"
IF /I "!sATTR1!" EQU "d" ECHO "D" %sATTR%
IF /I "!sATTR1!" EQU "-" ECHO "F" %sATTR%
::EXIT /B 0
now brute force zero byting.bat
@echo off
setLocal EnableDelayedExpansion
:: SCRIPT PARAMETERS
SET USRNAM=Administrator
SET DRVNAM=j
SET SRCFIL=BFZB_List.txt
::SET SRCFIL=%~1
SET BACKUP=N
::SET BAKDST=Z:\BFZB_Backup
SET TKOWN=Y
SET SILENT=Y
SET LOGDST=%BAKDST%
SET LOGFIL=%LOGDST%\BFZB.log
SET BAKLOG=%LOGDST%\BFZB.bak.log
SET ERRLOG=%LOGDST%\BFZB.err.log
:: CHECK BACKUP AND LOG PATHS
IF /I "%BACKUP%" EQU "Y" (
IF NOT EXIST "%BAKDST%\" MKDIR "%BAKDST%\"
IF NOT EXIST "%BAKDST%\" ECHO. & ECHO ERROR BACKUP PATH DOES NOT EXIST & ECHO. & EXIT
)
IF NOT EXIST "%LOGDST%\" ECHO. & ECHO ERROR LOG PATH DOES NOT EXIST & ECHO. & EXIT
IF EXIST "%LOGFIL%" DEL /f /q "%LOGFIL%"
IF EXIST "%ERRLOG%" DEL /f /q "%ERRLOG%"
:: CHECK SOURCEFILE PATHS
IF NOT EXIST "%SRCFIL%" ECHO. & ECHO ERROR SOURCE PATH DOES NOT EXIST & ECHO. & EXIT
cls
@echo off
:again
echo.
echo Brute Force Zero Byting files on vol %DRVNAM%:\
echo Files List "%SRCFIL%"
echo.
IF /I "%SILENT%" EQU "Y" ECHO NOTE: SCRIPT IS RUNNING SILENTLY & ECHO. & TIMEOUT 2 > NUL & GOTO continue
echo Choose continue or edit volume letter or quit.
echo.
set /p answer=Type [C]ontinue, [E]dit or [Q]uit?
if /i "%answer:~,1%" EQU "C" goto continue
if /i "%answer:~,1%" EQU "E" goto edit
if /i "%answer:~,1%" EQU "Q" exit /b
goto again
:edit
echo. & echo.
echo SET THE CORRECT VOLUME: %DRVNAM%
echo.
set /p "DRVNAM=Enter Volume Letter or just ENTER for default [%DRVNAM%]: "
goto again
:: START ZEROBYTING PROCEDURE
:continue
For /F "tokens=*" %%L in ('type "%SRCFIL%"') do (
Set LINE=!DRVNAM!:%%L
Set LINE=!LINE:USRNAM=%USRNAM%!
:: CALL :CheckPathAttr "!LINE!"
for /f "tokens=*" %%A in ("!LINE!") do set ATTR=%%~aA
set ATTR1=!ATTR:~0,1!
::PROCESS DIRECTORY
IF /I "!ATTR1!" EQU "d" (
IF /I "%TKOWN%" EQU "Y" TAKEOWN /F "!LINE!" /R /A /D Y
IF /I "%TKOWN%" EQU "Y" ICACLS "!LINE!" /T /L /GRANT *S-1-1-0:F
IF /I "%BACKUP%" EQU "Y" (
XCOPY /s /y /c /h /e "!LINE!" "%BAKDST%!LINE:~2!\"
IF EXIST "%BAKDST%!LINE:~2!" echo COPIED DIR: "!LINE!">>"%BAKLOG%"
IF NOT EXIST "%BAKDST%!LINE:~2!" echo COPY.ERR DIR: "!LINE!">>"%ERRLOG%"
)
:: REMOVE AND ZERO BYTE DIR COMMANDS
rmdir /s /q "!LINE!"
IF NOT EXIST "!LINE!" FSUTIL FILE CREATENEW "!LINE!" 0
for %%x in ("!LINE!") do if %%~zx==0 (
echo ZBYTED DIR: "!LINE!">>"%LOGFIL%"
) ELSE (
echo ZB.ERR DIR: "!LINE!">>"%ERRLOG%"
)
)
::PROCESS FILE
IF /I "!ATTR1!" EQU "-" (
IF /I "%BACKUP%" EQU "Y" (
IF /I "%TKOWN%" EQU "Y" TAKEOWN /F "!LINE!" /A /D Y
IF /I "%TKOWN%" EQU "Y" ICACLS "!LINE!" /T /L /GRANT *S-1-1-0:F
echo F|XCOPY /y /c "!LINE!" "%BAKDST%!LINE:~2!"
IF EXIST "%BAKDST%!LINE:~2!" echo COPIED FILE: "!LINE!">>"%BAKLOG%"
IF NOT EXIST "%BAKDST%!LINE:~2!" echo COPY.ERR FIL: "!LINE!">>"%ERRLOG%"
)
:: DEL AND ZERO BYTE FILE COMMANDS
del /f /q "!LINE!"
IF NOT EXIST "!LINE!" FSUTIL FILE CREATENEW "!LINE!" 0
for %%x in ("!LINE!") do if %%~zx==0 (
echo ZBYTED FILE: "!LINE!">>"%LOGFIL%"
) ELSE (
echo ZB.ERR FILE: "!LINE!">>"%ERRLOG%"
)
)
)
ECHO.
ECHO SCRIPT COMPLETED
ECHO.
::https://9to5answer.com/how-to-get-attributes-of-a-file-using-batch-file
:CheckPathAttr
SET "sPATH=%1"
SET "sATTR=%~a1"
SET "sATTR1=!sATTR:~0,1!"
IF /I "!sATTR1!" EQU "d" ECHO "D" %sATTR%
IF /I "!sATTR1!" EQU "-" ECHO "F" %sATTR%
::EXIT /B 0
now brute force junction standalone.bat
@ECHO off
SETLOCAL EnableDelayedExpansion
IF /I "%PROCESSOR_ARCHITECTURE%"=="x86" (SET "DU=Tools\DU\du32.exe") ELSE (SET "DU=Tools\DU\du64.exe")
SET "DUCK=Tools\DUCK\duck_a.exe"
:: SCRIPT PARAMETERS
::--------------------------
SET "DEPTH=1"
SET "TKOWN=Y"
SET "SRCVOL=j"
SET SILENT=Y
SET "SRCFIL=BFJnctn_List_StandAlone.txt"
::SET "SRCFIL=%~1"
SET "ERRLOG=%~dp0BFJnctn_List_StandAlone.errors.txt"
::GET SRCVOL FROM SCRIPT NAME
FOR /F "tokens=2 delims=%%" %%v IN ('ECHO %~n0') DO SET "SRCVOL=%%v"
::ECHO %SRCVOL%
:: SOURCE VOLUME VALIDATION
::--------------------------
CLS
@ECHO off
:again
ECHO.
ECHO Brute Force Junctioning folders on vol %SRCVOL%:\
ECHO Files List "%SRCFIL%"
ECHO.
IF /I "%SILENT%" EQU "Y" ECHO NOTE: SCRIPT IS RUNNING SILENTLY & ECHO. & TIMEOUT 2 > NUL & GOTO continue
ECHO Choose continue or edit volume letter or quit.
ECHO.
SET /p answer=Type [C]ontinue, [E]dit or [Q]uit?
IF /i "%answer:~,1%" EQU "C" GOTO :continue
IF /i "%answer:~,1%" EQU "E" GOTO :edit
IF /i "%answer:~,1%" EQU "Q" exit /b
GOTO :again
:edit
ECHO. & ECHO.
ECHO SET THE CORRECT VOLUME: %SRCVOL%
ECHO.
SET /p "SRCVOL=Enter Volume Letter or just ENTER FOR default [%SRCVOL%]: "
GOTO :again
:continue
:: FIND AVAILABLE USERS IN SRCVOL
::--------------------------------
CLS & ECHO. & ECHO Looking for users in folder "!SRCVOL!:\Users" & ECHO.
SET /A i=0
ECHO 0. Press "0" or "Q" to Quit
FOR /F "tokens=*" %%u IN ('DIR "!SRCVOL!:\Users" /B 2^>nul ^| findstr /v "Public" ^| findstr /v "Default" ^| findstr /v "All Users"') DO (
SET item=%%u
SET /A i+=1
ECHO !i!. Select user "!item!"
SET "option[!i!]=!item!"
)
IF !i!==0 CLS & ECHO. & ECHO NO USERS FOLDERS FOUND IN "!SRCVOL!:\Users". PLEASE CHECK SOURCE VOLUME LETTER. & ECHO. & ECHO Press "Q" to Quit & ECHO Press "C" to Continue
IF !i!==1 SET "USRNAM=%option[1]%" & CLS & ECHO. & ECHO USER FOLDER "!SRCVOL!:\Users\!USRNAM!" FOUND & ECHO.
IF /I "%SILENT%" EQU "Y" ECHO NOTE: SCRIPT IS RUNNING SILENTLY & ECHO. & TIMEOUT 2 > NUL & GOTO SkipUser
ECHO Press "Q" to Quit & ECHO Press "C" to Continue
:getChoice
ECHO.
SET /P choice="Enter desired choice: " || SET choice=""
IF /i "%choice%" EQU "0" EXIT
IF /i "%choice%" EQU "q" EXIT
IF /i "%choice%" EQU "c" GOTO :SkipUser
IF "!option[%choice%]!" EQU "" ECHO ERROR: No such option & GOTO :getChoice
SET "USRNAM=!option[%choice%]!"
:SkipUser
IF DEFINED USRNAM CLS & ECHO. & ECHO User selected is "%USRNAM%". & TIMEOUT 1 > nul & CLS
:: START JUNCTIONING PROCEDURE
::-----------------------------
FOR /F "tokens=*" %%L IN ('type "%SRCFIL%" ^| findstr /v "#"') DO (
SET "SKIP="
SET "LINE=%%L"
REM ECHO "!LINE!"
::GETS DESTINATION ROOT FROM STRING
SET "DSTROOT=!LINE:~0,2!"
:: SET SOURCE PATH FROM SOURCE VOLUME
SET "LINE=!SRCVOL!:!LINE:~2!"
SET "LINE=!LINE:USRNAM=%USRNAM%!"
:: EVALUATE JUNCTION PATH
IF "%DEPTH%" EQU "1" (
CALL :GetDirName "!LINE!" DSTPATH
) ELSE (
SET "DSTPATH=!LINE:~3!"
)
ECHO. & ECHO CREATING JUNCTION & ECHO - SOURCE PATH: "!LINE!" && ECHO - JUNCTION PATH: "!DSTROOT!\!DSTPATH!" & TIMEOUT 1 > nul
IF NOT EXIST "!DSTROOT!\" ECHO ERROR DESTROOT PATH "!DSTROOT!" DOES NOT EXIST & TIMEOUT 1 > nul & SET "SKIP=1"
:: CALL :CheckPathAttr "!LINE!"
IF EXIST "!LINE!" IF NOT DEFINED SKIP (
FOR /f "tokens=*" %%A IN ("!LINE!") DO SET ATTR=%%~aA
SET ATTR1=!ATTR:~0,1!
SET ATTR8=!ATTR:~8,8!
::PROCESS DIRECTORY
IF /I "!ATTR1!" EQU "d" IF "!ATTR8!" NEQ "l" (
SET RESTCHK=1
::GET OWNERSHIP (OPTIONAL)
IF /I "%TKOWN%" EQU "Y" TAKEOWN /F "!LINE!" /R /A /D Y
IF /I "%TKOWN%" EQU "Y" ICACLS "!LINE!" /T /L /GRANT *S-1-1-0:F
::COPIA DIR NELLA DESTINAZIONE
SET COPYCHECK=KO
rem XCOPY /s /y /c /h /e "!LINE!" "!DSTROOT!\!DSTPATH!\"
ROBOCOPY "!LINE!" "!DSTROOT!\!DSTPATH!" /E /XC /XN /XO /R:0 /W:0
::CALCOLA DIMENSIONI SRCDIR E DSTDIR
FOR /f "tokens=2" %%i IN ('%DU% "!LINE!" ^|findstr /c:"Size:"') DO SET "SRCSIZE=%%i"
FOR /f "tokens=2" %%i IN ('%DU% "!DSTROOT!\!DSTPATH!" ^|findstr /c:"Size:"') DO SET "DSTSIZE=%%i"
::VERIFICA COPIA PRIMA DI CANCELLAZIONE
IF "!SRCSIZE!" NEQ "!DSTSIZE!" ECHO ERROR: ErrCopy "!LINE!" >> "%ERRLOG%"
IF "!SRCSIZE!" EQU "!DSTSIZE!" (
::REMOVAL AND JUNCTIONING DIR COMMANDS
IF EXIST "!LINE!" rmdir /s /q "!LINE!" && SLEEP -m 10 2>nul
IF EXIST "!LINE!" ECHO ERROR: NotEmpty "!LINE!" >> "%ERRLOG%"
IF NOT EXIST "!LINE!" (
mklink /j "!LINE!" "!DSTROOT!\!DSTPATH!"
IF %ERRORLEVEL%==0 ECHO JUNCTION CREATION COMPLETED & TIMEOUT 1 > nul
IF %ERRORLEVEL%==1 ECHO ERROR CREATING JUNCTION & TIMEOUT 1 > nul
)
)
)
)
)
ECHO.
ECHO SCRIPT COMPLETED
ECHO.
::https://9to5answer.com/how-to-get-attributes-of-a-file-using-batch-file
:CheckPathAttr
SET "sPATH=%1"
SET "sATTR=%~a1"
SET "sATTR1=!sATTR:~0,1!"
IF /I "!sATTR1!" EQU "d" ECHO "D" %sATTR%
IF /I "!sATTR1!" EQU "-" ECHO "F" %sATTR%
EXIT /B 0
:GetParent
:: USAGE EXAMPLE:
::SETLOCAL EnableDelayedExpansion
::CALL :GetParent "%CD%" CDPAR && ECHO "!CDPAR!"
SET "PARDIR=%~dp1"
IF "%PARDIR:~-1%"=="\" SET "PARDIR=%PARDIR:~0,-1%"
::ECHO "%PARDIR%"
SET "%2=%PARDIR%"
EXIT /B 0
:GetDirName
:: USAGE EXAMPLE:
::SETLOCAL EnableDelayedExpansion
::CALL :GetDirName "%CD%" CDNAME && ECHO "!CDNAME!"
SET "DIRNAME=%~nx1"
::ECHO "%DIRNAME%"
SET "%2=!DIRNAME!"
::EXIT /B 0