2014-01-10 3 views
2

새해 복 많이 받으신 새해 복 많이 받으세요.If 문과 키보드 입력을 사용한 일괄 처리 파일

키보드 입력을받은 배치 파일을 만든 다음 해당 입력을 기반으로 프로그램을 시작하거나 입력 한 옵션이 유효하지 않은 경우 오류 메시지를 표시하려고합니다. 하지만 작동하지 않습니다. 여기에 지금까지있어 무엇 : 내가 함께하고 변수 라운드 %없이 그것을 시도했지만 작동하지 않았다

ECHO OFF 
set /p %environment%=Connect to Live or Dev?: 

IF %environment% = "Live" 
(
C:\Windows\System32\runas.exe /user:live\someuser /netonly "C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Binn\ManagementStudio\Ssms.exe" 
) 
ELSE IF %environment% = "Dev" 
(
C:\Windows\System32\runas.exe /user:dev\someuser /netonly "C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Binn\ManagementStudio\Ssms.exe" 
) 
ELSE 
(
ECHO "Invalid Option" 
) 

. 누구든지 올바른 방향으로 나를 가리킬 수 있습니까?

희망 하시겠습니까?

건배

알렉스

+0

윈도우 7에 .cmd 파일로 이것을 테스트했습니다. 2)'''''''if''와 같은 줄에 있어야합니다 3)''else (''한 줄에 있어야합니다. ') – Stephan

답변

5

다음은 올바른 방향으로 당신을 안내하는 코드입니다. 1) 당신은`if` 온라인 번역 방법, 모양 : 나는 어떻게되는지 확인하기 위해`@echo off`를 제거

ECHO OFF 
SET /p environment="Connect to Live or Dev?" 
IF /i "%environment%" == "Live" GOTO live 
IF /i "%environment%" == "Dev" GOTO dev 
ECHO Invalid Option 
GOTO end 
:live 
ECHO "Live!!!!" 
goto end 
:dev 
ECHO "Dev!!!" 
:end 
PAUSE 
+0

정말 훌륭했습니다. – denimknight

2
ECHO OFF 
set /p "environment=Connect to Live or Dev?:" 

IF "%environment%"=="Live" (
    .... 
) ELSE IF "%environment%"=="Dev" (
    .... 
) ELSE (
    .... 
) 

1-set 명령에서 % 표시를 사용하지 않습니다 등호의 왼쪽에있는 변수의 이름입니다. %var% sintax는 변수 값을 검색하는 데 사용됩니다.

2 - 어떤지가 판정하기 위해 운전자가 == 또는 EQU (if /? 참조)

3합니다 - IF 명령에서 인용 동일 항등 연산자의 양면에 적용되어야한다. 그렇지 않은 경우로 간주되지 않습니다 값은

4 같음 - 명령/블록은 IF 명령의 조건에 해당하는 경우, 실행하기 위해 IF, 그래서 시작 괄호 다음 줄

될 수 없다 같은 라인에서 시작해야합니다

5 - ELSEIF 블록을 계속하고 자체 블록의 시작을 선행해야합니다. IF의 닫는 괄호와 ELSE의 시작 괄호는 같은 줄에 있어야합니다.