2013-03-16 298 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 

如果要測試,請在桌面上創建2個稱爲AH1和AH2的批處理文件 它說Access Denied ....爲什麼?訪問被拒絕...?

+1

默認情況下,只有管理員帳戶對'C:\ ProgramData \'下的所有內容擁有寫入權限。 – CBroe 2013-03-16 23:00:24

回答

0

不管你把什麼放入option變量中,它總是會轉到:yes

我猜你搞亂了與choice命令時,你在做這個,因爲errorlevel不包含您選擇的選項,當你有set命令。

set文檔:

%ERRORLEVEL% - 擴展到當前ERRORLEVEL值

所以,你可能想改變if %errorlevel% equ no goto noif %option% equ no goto no

此外,如果您不把yesno都置於其中,會發生什麼情況。您需要通過在第二個if聲明後面有一個exit命令來說明這些事情。