The extension for Mechaflash's answer and solves the problem of overwriting the file, generating a unique file name for the "test" file.
@ECHO OFF SETLOCAL ENABLEDELAYEDEXPANSION SET "a=%~1" SET "b=" SET "g=0" :a SET "c= '1234567890-=qwertyuiop[]asdfghjkl;'zxcvbnm, .~!@ #$%%^&()_+QWERTYUIOP{}ASDFGHJKLZXCVBNM" SET /A "d=0, e=1" :b IF "!c!" NEQ "" ( IF "!c:~%d%,1!" NEQ "" ( IF EXIST "!a!\!b!!c:~%d%,1!" ( SET "c=!c:~0,%d%!!c:~%e%!" ) ELSE ( SET /A "d=!d!+1, e=!e!+1" ) GOTO :b ) ) IF "!c!" EQU "" ( SET "c= '1234567890-=qwertyuiop[]asdfghjkl;'zxcvbnm, .~!@ #$%%^&()_+QWERTYUIOP{}ASDFGHJKLZXCVBNM" :c IF "!c!" NEQ "" ( IF "!c:~%d%,1!" NEQ "" ( SET /A "d=!d!+1" GOTO :c ) ) SET /A "d=!d!-1" SET /A "f=%RANDOM%*!d!/32768" SET "b=!b!!c:~%f%,1!" GOTO :a ) ELSE ( SET /A "d=!d!-1" SET /A "f=%RANDOM%*!d!/32768" SET "b=!b!!c:~%f%,1!" ) ((ECHO EXIT>"!a!\!b!" && SET "g=1") & IF EXIST "!a!\!b!" DEL /F "!a!\!b!") >NUL 2>&1 ENDLOCAL & (SET "a=%g%") IF "%a%" EQU "1" ECHO TRUE
( %~1 is the input directory)
EDIT: If you want a safer option
@ECHO OFF SETLOCAL ENABLEDELAYEDEXPANSION SET "a=%~1" SET "b=" SET "g=0" :a SET "c= '1234567890-=qwertyuiop[]asdfghjkl;'zxcvbnm, .~!@ #$%%^&()_+QWERTYUIOP{}ASDFGHJKLZXCVBNM" SET /A "d=0, e=1" :b IF "!c!" NEQ "" ( IF "!c:~%d%,1!" NEQ "" ( IF EXIST "!a!\!b!!c:~%d%,1!" ( SET "c=!c:~0,%d%!!c:~%e%!" ) ELSE ( SET /A "d=!d!+1, e=!e!+1" ) GOTO :b ) ) IF "!c!" EQU "" ( SET "c= '1234567890-=qwertyuiop[]asdfghjkl;'zxcvbnm, .~!@ #$%%^&()_+QWERTYUIOP{}ASDFGHJKLZXCVBNM" :c IF "!c!" NEQ "" ( IF "!c:~%d%,1!" NEQ "" ( SET /A "d=!d!+1" GOTO :c ) ) SET /A "d=!d!-1" SET /A "f=%RANDOM%*!d!/32768" SET "b=!b!!c:~%f%,1!" GOTO :a ) ELSE ( SET /A "d=!d!-1" SET /A "f=%RANDOM%*!d!/32768" SET "b=!b!!c:~%f%,1!" ) IF EXIST "!a!\!b!" ( SET "b=!b:~0,-1!" GOTO :a ) ELSE ( ((ECHO EXIT>"!a!\!b!" && SET "g=1") & IF EXIST "!a!\!b!" DEL /F "!a!\!b!") >NUL 2>&1 ) ENDLOCAL & (SET "a=%g%") IF "%a%" EQU "1" ECHO TRUE
source share