2016-11-10 1 views
0

이 작은 코드는 MySQL과 Apache를 열고 사용자에게 PHPMyAdmin을 열 것인지 묻는 메시지를 표시하지만 실제로는 그렇지 않습니다. 그냥 다음 줄로 건너 뜁니다.IF 문이 참일 때 Firefox가 열리지 않음 배치

@echo off 

net start mysql 
net start Apache2.4 

set /p openPMA=Would you like to open PMA? (y/n) 

if %openPMA%=="y" "C:\Program Files (x86)\Mozilla Firefox\firefox.exe" http://localhost/phpmyadmin/ 

echo Press any key to stop the Servers 
pause >nul 

net stop mysql 
net stop Apache2.4 

어떻게하면 좋을까요?

기본적으로 서버를 시작하고 PMA를 열 것인지 묻는 메시지가 나타납니다. 그렇게 할 경우 사용자가 계속 키를 눌러 서버를 중지 한 다음 서버를 중지하십시오.

미리 도움 주셔서 감사합니다.

답변

1

귀하의 경우, 인용문은 그대로 사용됩니다. 이것이 유닉스/리눅스 쉘과는 달리 배치가 작동하는 방식입니다.

따라서 if %openPMA%=="y""y"을 입력하지 않으려면 if /i "%openPMA%"=="y"이어야합니다.

(이 문자열에 관해서는 여전히 특별한 의미를 가지고 유용합니다, 예를 들어 자신의 경로에 공백을 포함하는 명령을 실행하는,하지만 특별한 처리가 수행되지 않습니다 따옴표 주)

+3

... 그리고 추가'/ 나는 대소 문자를 구별하지 않는다. @OP : 입력하는 내용을 지정하지 않았습니다. 이 문제는 단순히 을 입력하는 것으로 나타납니다.을 입력하면 변수가'set/p'에 변경되지 않습니다. 결과적으로,'if'에서 문법 오류를 일으키는 가치가 없습니다. 양쪽을 인용하면 안전의 척도가됩니다. 'set/p' 전에'set "openpma = y"'를 사용하면 디폴트로'y'를 사용할 수 있습니다. – Magoo

+0

코멘트와 편집에 감사드립니다. –

관련 문제