Я использую пакетный сценарий для выполнения основных пользовательских функций (добавления пользователя, удаления, изменения типа учетной записи и т. Д.), А не для того, чтобы делать все вручную. Программа спрашивает пользователя, что он хотел бы сделать, следуя опциям с A, B, C,… G. Эта часть работает нормально, однако после того, как пользователь входит в опцию, она неизбежно закрывается. После проверки команды, следующие за оператором if, не запускаются. Как мне исправить оператор if?
@echo off
net user
echo What would you like to do?
echo A: Turn off default admin account
echo B: Turn off default guest account
echo C: Add a user
echo D: Remove a user
echo E: Change a users privilages
echo F: Change a password
echo G: Nothing
set /p en = "Enter in the Letter:"
if %en% == "A" (
net user administrator /active:no
echo Built-In Admin Is Turned Off
Pause
)
if %en% == "B" (
net user guest /active:no
echo Guest Account Is Turned Off
Pause
)
if %en% == "C" (
set /p adduser = What is the name of the user you would like to add(Case Sensitive)?
set /p addpassword = What is the password you would like to add to %adduser%?
net user %adduser% %addpassword% /added
echo Added %adduser%
set /p objUser = GetObject(WinNT://MyComputer/%adduser%,user)
%objUser%.PasswordExpired = 1
%objUser%.SetInfo
echo Password Will Need To Be Changed On Next Logon
Pause
if %en% == "D" (
set /p deluser = What is the name of the user you would like to delete(Case Sensitive)?
net user %deluser% /del
echo User %deluser% has been Deleted
Код должен запускать команды, соответствующие букве, и затем оставаться открытым, пока пользователь не будет готов закрыть его. Однако он не запустит последовательность и закроется при вводе пользователем буквы, установленной для переменной 'en'.
Если это не из-за неудобств, пожалуйста, объясните, почему ваш код работает в более простых терминах. Я довольно плохо знаком с использованием пакетных сценариев и до сих пор не понимаю подавляющее большинство команд и терминов.