Я просто пытаюсь сделать мини-dos, который будет выполнять разные действия для каждого выхода. вот что я хотел: если пользовательский тип? то он будет ввести следующее:cmd запросить у пользователя несколько действий с различными действиями
"del for delete.(you will get to type the file name later.)"
"edit for text editor."
"remoteshutdown for remote shutdown(Real) computer."
"note for mickywachi's note"
это работает отлично, но если я печатаю дель, редактировать, RemoteShutdown, заметки и другие вещи, он будет делать то же самое! то, что я хочу, чтобы дель сделать:
Type in file you want to delete!
(input for file name)
затем удалит этот файл и задать для ввода снова. что я хотел редактировать, чтобы открыть дополнительную программу. то же самое с remoteshutdown и примечание. и то, что я хотел, чтобы это сделать, когда тип пользователя в неправильной команде:
(username they logged on), you typed in the wrong command! type ? for help.
и запросит ввод снова. Может ли кто-нибудь помочь? Вот код (пропустить этот большой текст и логин и перейти на маркировать вход., что, где проблема есть.)
@echo off
title miOS
color 12
echo "-------------------------"
echo " _ ___ ____ "
echo " _ __ ___ (_)/ _ \/ ___| "
echo "| '_ ` _ \| | | | \___ \ "
echo "| | | | | | | |_| |___) |"
echo "|_| |_| |_|_|\___/|____/ "
echo "-------------------------"
echo Copyright(C)mickywachi. All rights Reserved.
pause
cls
color f0
echo Starting miOS....
set current=%CD%
echo Please Login.
:login
color f0
set /p username=Username:
if %username%==Administrator goto passlogin
if %username%==mickywachi goto passlogin else {
color f4
echo Wrong User!
pause
goto :login
}
:passlogin
color f0
set /p password=Password:
if %username% == Administrator if %password%==admin goto logon
if %username% == mickywachi if %password%==micky1594 goto logon else {
color f4
echo Wrong Password!
pause
goto :passlogin
}
:logon
echo Welcome to miOS!
echo Type ? for help.
:input
set /p input=%current%:
if %input%==? {
echo "del for delete.(you will get to type the file name later.)"
echo "edit for text editor."
echo "remoteshutdown for remote shutdown(Real) computer."
echo "note for mickywachi's note"
set input=/
goto input
}
if %input%==del {
echo Type in file name you want to delete!
set /p delwhat=:
del %current%\%delwhat%.mifile
set input=/
goto input
}
if %input%==remoteshutdown start REMOTESHUTDOWN.bat
if %input%==note start mickywachiNote.bat else {
echo %username%, You typed in wrong command! type ? for help.
set input=/
goto input
}
кто получил идею для этой проблемы?
спасибо, сейчас работа. но с тем, кто заметит, он открывает заметку и делает еще в одно и то же время! edit: nevermind, теперь он работает –
У партии нет способа узнать, является ли 'else' командным параметром для' start' или является 'else' условным. Вам нужно использовать 'if ... (start what) else (somethingelse)', то есть инструкция для выполнения в true должна быть '(в скобках)' – Magoo