Ранее сегодня я продолжал делать RAR Password Decryptor. Я тестировал его на тестовом RAR-файле с паролем, представляющим собой просто восклицательный знак, но когда я использую свой Decryptor, он просто говорит: "Эхо выключено". Ошибка находится в нижней части кода рядом с надписью "эхо".
Это код для RAR Password Decryptor, который я уже сделал (и если все в порядке, можете ли вы сообщить мне о еще каких-либо ошибках и дать несколько советов, спасибо, ребята).
REM ============================================================
REM errorcode401.blogspot.in
@echo off
title Decryptor
mode con: cols=50 lines=50
copy "C:\Program Files\WinRAR\Unrar.exe"
SET PSWD=0
SET DEST=%TEMP%\%RANDOM%
MD %DEST%
:RAR
cls
echo ----------------------------------------------
echo GET DETAIL
echo ----------------------------------------------
echo.
SET/P "NAME=Enter File Name : "
IF "%NAME%"=="" goto NERROR
goto GPATH
:NERROR
echo ----------------------------------------------
echo ERROR
echo ----------------------------------------------
echo Sorry you can't leave the line blank.
pause
goto RAR
:GPATH
SET/P "PATH=Enter Full Path : "
IF "%PATH%" == "" goto PERROR
goto NEXT
:PERROR
echo ----------------------------------------------
echo ERROR
echo ----------------------------------------------
echo Sorry you can't leave the line blank.
pause
goto RAR
:NEXT
IF EXIST "%PATH%\%NAME%" GOTO START
goto PATH
:PATH
cls
echo ----------------------------------------------
echo ERROR
echo ----------------------------------------------
echo This file does not Exist.
pause
goto RAR
:START
SET /A PSWD=%PSWD%+1
echo 1q2w!3e
UNRAR E -INUL -P%PSWD% "%PATH%\%NAME%" "%DEST%"
IF /I %ERRORLEVEL% EQU 0 GOTO FINISH
GOTO START
:FINISH
RD %DEST% /Q /S
Del "Unrar.exe"
cls
echo ----------------------------------------------
echo CRACKED
echo ----------------------------------------------
echo.
echo PASSWORD FOUND!
echo FILE = %NAME%
echo CRACKED PASSWORD = %PSWD%
pause>NUL
exit
REM ===========================
решение1
Если у вас возникли проблемы echo
, !
то у вас естьВключить отложенное расширениенабор.
ЕслиВключить отложенное расширениеустановлен, затем !
рассматривается как специальный символ идолжен быть спасенс ^
.
^
его необходимо использовать дважды, так как он также является специальным символом.
Экранирование восклицательных знаков
Когда оболочка работает в режиме EnableDelayedExpansion, символ ! используется для обозначения переменной, поэтому его необходимо экранировать (дважды), если вы хотите обрабатывать его как обычный символ, вам следует сделать следующее:
^^!
Без EnableDelayedExpansion
:
@echo off
echo 1q2w!3e
Выход:
1q2w!3e
СEnableDelayedExpansion
и нет спасения:
@echo off
Setlocal EnableDelayedExpansion
echo 1q2w!3e
Выход:
1q2w3e
Обратите внимание наотсутствующий !
на выходе.
СEnableDelayedExpansion
и побег:
@echo off
Setlocal EnableDelayedExpansion
echo 1q2w^^!3e
Выход:
1q2w!3e
Включить отложенное расширениеможно установить тремя способами:
- Использование
Setlocal EnableDelayedExpansion
в пакетном файле - Начнем
cmd
с/v
переключателя. - В реестре под
HKLM
илиHKCU
[HKEY_CURRENT_USER\Software\Microsoft\Командный процессор] "DelayedExpansion"= (REG_DWORD) 1=включено 0=отключено (по умолчанию)
ИсточникиВключить отложенное расширение,Экранированные символы, разделители и кавычки