2017-04-22 3 views
0

나는 자신의 커스텀 명령 프롬프트를 만들어 일을 쉽게하기 위해 일하고있다. 나는 성공적으로 인터페이스와 type 명령을 만들었지 만, help 명령을 추가하려고 시도했을 때 메뉴가 표시되지만 내 pause >nul을 입력하면 작동하지 않고 창이 닫힙니다. 좀 봐 주시겠습니까? 미리 감사드립니다.배치로 사용자 정의 명령을 작성하는 방법은 무엇입니까?

@echo off 
:HELLO 
echo Hello! 
pause >nul 
cls 
echo What can I do for you? Type in your commmand! (Type "help" to display a list of every command available.) 
set /p command= 
if %command%==type (
goto :TYPEFILENAME 
) 
if %command%==help (
goto :HELPLIST 
) 
:MAIN 
cls 
echo What can I do for you? Type in your commmand! (Type "help" to display a list of every command available.) 
set /p command= 
if %command%==type (
goto :TYPEFILENAME 
) 
if %command%==help (
goto :HELPLIST 
) 
pause >nul 
:HELPLIST 
echo ---------------------------------- 
echo Help: Page 1/1 
echo Command | What it does 
echo help | displays this page 
echo type | types a file 
echo ---------------------------------- 
pause >nul 
goto :MAIN 

나머지 코드가 필요하면 알려주세요. 이것은 내가 가장 중요하다고 생각하는 부분이므로 나머지 부분을 추가하지 않았습니다.

+1

빠른 참고 : 먼저 명령 프롬프트를 열고 거기에서 파일을 실행해야합니다. 이렇게하면 닫는 것을 막을 수 있으며 잠재적 인 오류 메시지를 읽을 수 있습니다. 탐색기 창에서 shift-rightclicking 할 때 디렉토리에서 명령 프롬프트를 열고 "여기에서 명령 프롬프트 열기"를 선택할 수 있습니다. – geisterfurz007

+0

@ geisterfurz007 그랬더니,이 메시지에''무엇을 ''내부 또는 외부 명령으로 인식 할 수 없습니까? 작동 가능한 프로그램이나 배치 파일 '이라는 오류 메시지가 나타났습니다. 알아낼 수 없습니다. –

+2

에코의 파이프 기호를 캐럿으로 이스케이프 처리합니다. '^ |' – LotPings

답변

0

도움말 부분이 충돌하는 이유는 막대 (|) 문자입니다. 이렇게 특수하게 울리기를 원하면 이스케이프 문자 (^)를 앞에 추가해야합니다. 코드의 해당 부분은 다음과 같아야합니다.

echo ---------------------------------- 
echo Help: Page 1/1 
echo Command ^| What it does 
echo help ^| displays this page 
echo type ^| types a file 
echo ---------------------------------- 
관련 문제