Как подсказать ввод пользователя в Batch-File - PullRequest
0 голосов
/ 14 октября 2018

Я пытаюсь создать свою собственную командную строку с командным файлом с пользовательскими командами, такими как «Удалить», как «Del» и т. Д. ... Но когда я наткнулся на ввод пользователя, я столкнулся с проблемой, и вот онаэто:

CMD.bat

@echo off
echo.
set /p inp=Command: 
if /i %inp% == Remove ...
...

И я остановился, чтобы подумать: «Как мне сделать команду удаления?».Итак, я хочу сделать команду «Удалить», чтобы использовать ее как «Удалить C: \ Users \ usr \ Desktop \ File.txt», но если пользователь ввел другую вещь, такую ​​как «Удалить blablabla», то как программа обнаружит этосинтаксис команды неверен?.

Так что, если кто-нибудь найдет решение, я буду очень признателен, и спасибо!

Ответы [ 2 ]

0 голосов
/ 22 апреля 2019

используйте команду doskey, вот что вы бы поставили

    doskey del=remove
0 голосов
/ 17 октября 2018

Предполагая, что вы спрашиваете, как установить пользовательские команды, попробуйте это.

 @echo off
set "RESPONSE="
goto 'input'

: 'input'
set /p response=What would you like to do?
if /I %response%==help goto 'help'
set /p responsetwo=What would you like to %response%?
if /I %response%==remove set response=del
if /I %response%==check set response=dir
if /I %response%==dir %response% "%responsetwo%"
%response% %responsetwo%
echo %response% "%responsetwo%"
goto 'input'

: 'help'
cls
echo Check = Dir in regular command prompt, checks a directory.
echo Remove = del in regular command prompt, deletes something.
pause
goto 'input'

Чтобы добавить больше пользовательских команд, просто добавьте

if /I %response%==<word you want to do X command> set response=<X command>

(замените X на команду для секундыфрагмент кода, очевидно.)

РЕДАКТИРОВАТЬ: Хорошо, так что после прочтения вашего комментария я нашел лучшее решение.Вот, пожалуйста!

@echo off
goto 'input'

: 'input'
cls
set "response="
set /p response=What would you like to do?
set firstresponse=%response:~0,5%
if %firstresponse%==help goto 'help'
pause
if /I %firstresponse%==check set firstresponse=dir && set executeparttwo=%response:~5%
if /I %firstresponse%==remov goto 'remove'
rem Put "if /I %firstresponse%==<whatever the first 5 letters of the command would be> goto '<command name>'
%firstresponse%%executeparttwo%
pause
goto 'input'

: 'remove'
set "firstresponse=" && set firstresponse=%response:~0,6%
if /I %firstresponse%==remove set firstresponse=del
set executeparttwo=%response:~6%
%firstresponse%%executeparttwo%
pause
goto 'input'

: 'help'
cls
echo Check = Dir in regular command prompt, checks a directory.
echo Remove = del in regular command prompt, deletes something.
pause
goto 'input'
...