Как упростить повторяющиеся команды в терминале cmd? - PullRequest
0 голосов
/ 17 мая 2019

Я написал ряд повторяющихся командных строк, подобных приведенной ниже, может быть, есть ввод от других, чтобы упростить команду? как можно проще.

@echo off
:stro
cls
echo. 
echo    Enter you term:
echo    ++++++++++++++++++++++
echo    1) Command Prompt (CMD)
echo    2) Power Shell
echo    3) Exit
echo.   
set /p kod=
if %kod% == 1 goto cmde
if %kod% == 2 goto pwsl
if %kod% == 3 goto exitx  
:exitx
echo set speech = Wscript.CreateObject("SAPI.spVoice") >> "tuntu.vbs"
echo speech.speak "thank you for use me. i hope you have a nice day. bye bye" >> "tuntu.vbs"
attrib +h "tuntu.vbs"
start tuntu.vbs
pause
attrib -h "tuntu.vbs"
del tuntu.vbs
exit
:cmde
start cmd
echo set speech = Wscript.CreateObject("SAPI.spVoice") >> "tuntu.vbs"
echo speech.speak "you choice is number %kod% and you open command prompt CMD"  >> "tuntu.vbs"
attrib +h "tuntu.vbs"
start tuntu.vbs
pause
attrib -h "tuntu.vbs"
del tuntu.vbs
goto stro
:pwsl
start powershell
echo set speech = Wscript.CreateObject("SAPI.spVoice") >> "tuntu.vbs"
echo speech.speak "you choice is number %kod% and you open Power shell"  >> "tuntu.vbs"
attrib +h "tuntu.vbs"
start tuntu.vbs
pause
attrib -h "tuntu.vbs"
del tuntu.vbs
goto stro

Тогда я хочу, чтобы командная строка была простой и не содержала повторяющихся и скучных предложений. Спасибо за помощь

1 Ответ

0 голосов
/ 17 мая 2019

Создайте сценарий vbs только один раз (используйте параметр вместо жесткого кодирования текста):

Ваш код затем сокращается до:

@echo off

(echo set speech = Wscript.CreateObject("SAPI.spVoice"^)
echo speech.speak WScript.Arguments(0^))>"speak.vbs"
attrib +h speak.vbs
set "say=cscript /nologo speak.vbs"

:stro
cls
echo. 
echo    Enter you term:
echo    ++++++++++++++++++++++
echo    1) Command Prompt (CMD)
echo    2) Power Shell
echo    3) Exit
echo.   

choice /c 123
set kod=%errorlevel%
goto :label%kod%

:label3
%say% "thank you for using me. i hope you have a nice day. bye bye"
exit /b

:label1
start cmd
%say% "your choice is number %kod% and you open command prompt CMD"  
goto stro

:label2
start powershell
%say% "your choice is number %kod% and you open Power shell"
goto stro

Я также заменил ваш set /p на choice, потому что choice обрабатывает пользовательский ввод и предотвращает недопустимые вводы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...