2013-03-16 7 views
0
@echo off 
color 4 
ping localhost 2.5 > nul 
echo Welcome to the configuration menu. 
echo Move AH1.exe and AH2.exe to your desktop. 
echo This only works the first time 
echo SO BE CAREFUL! 
echo Would you like this to start on computer startup? 
echo say "yes" or "no" below. 
set /p option=Option: 

IF %ERRORLEVEL% EQU no goto no 
IF %ERRORLEVEL% EQU yes goto yes 
:yes 
echo Move AH1.bat and AH2.bat to desktop. 
::Copies files to dekstop of current user *For Windows 7 
xcopy "%systemdrive%\users\%username%\Desktop\AH1.bat" "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup" 
xcopy "%systemdrive%\users\%username%\Desktop\AH2.bat" "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup" 

echo Moved. 
echo Press any key to close Anti Hacker Configuration. 
pause > nul 
exit 
:no 
echo No?The program will not take full effect then. 
pause 
exit 

테스트하려면 바탕 화면에 AH1 및 AH2라는 2 개의 배치 파일을 만듭니다. 액세스가 거부되었습니다.라는 이유가 무엇입니까?액세스가 거부되었습니다 ...?

+1

기본적으로 관리자 계정 만이 'C : \ ProgramData \'에있는 모든 것에 대한 쓰기 권한을 갖습니다. – CBroe

답변

0

option 변수에 무엇을 넣었는지 상관없이 항상:yes입니다.

choice 명령을 사용했을 때 errorlevelset 명령을 사용할 때 선택하는 옵션이 없기 때문에이 명령을 사용할 때 혼란 스럽다고 생각합니다. set 문서에서

:

% ERRORLEVEL %의은 - 당신이 if %option% equ no goto noif %errorlevel% equ no goto no을 변경할 수 있습니다,

그래서 현재 ERRORLEVEL 값으로 확장합니다.

또한 yes이나 no을 입력하지 않으면 어떻게됩니까? 두 번째 if 문 다음에 exit 명령을 사용하여이 문제를 설명해야합니다.

관련 문제