2017-05-17 12 views
0

배치 파일을 사용하여 Windows에서 드라이브를 매핑하는 코드가 있습니다. nik 및 password와 같은 매개 변수를 사용합니다. 그런 다음 사용자와 암호가 일치하면 출력이 "성공"이되고 그렇지 않으면 프로그램에서 "일부 오류"가 출력됩니다. 출력 성공과 내가 FOR DO와 인터넷 사용에서 가져온 몇 가지 오류의 매개 변수를 삽입 암호 후 내 문제, 프로그램은 항상 출력의 "를 보내배치 파일 그물을 사용하여 변수에 출력 할 때

@MC ND 여기

:MENU 
Title MyTitle 
@ECHO OFF 
@ECHO OFF 

Echo --------------- MENU ----------------------- 
Echo 1. Press 1 for start or reload program. 
Echo 2. Press 0 for exit. 

Echo Choose : 
SET /p tekan= 
IF %tekan%==0 GOTO EXIT 
IF %tekan%==1 GOTO FORM_QMR 

:FORM_QMR 
Echo ---------- Fill this Form (%userdomain%) ---------- 
SET /p nik="Insert Your ID :" 
SET /p passwd="Insert Your Password :" 
GOTO CREDENTIAL_ACTION 

IF %userdomain% == DOMAIN GOTO CREDENTIAL_ACTION_FOR_USER_WITH_DOMAIN 
IF NOT %userdomain% == DOMAIN GOTO CREDENTIAL_ACTION_FOR_USER_WITHOUT_DOMAIN 

:CREDENTIAL_ACTION_FOR_USER_WITH_DOMAIN 
FOR /F %%H IN ('NET USE "\\myserver\Path01\Path02" /User:domain\%nik% %passwd% 2^>^&1 ^| Find /I "System error 1326 has occurred."') DO SET "ACTSTATUS=BAD" 
IF %ACTSTATUS%==BAD 
(
Echo "Some error found, please contact administrator." 
GOTO FORM_QMR 
) 
IF NOT %ACTSTATUS%==BAD 
(
Echo "Success." 
) 

:CREDENTIAL_ACTION_FOR_USER_WITHOUT_DOMAIN 
FOR /F %%H IN ('NET USE "\\192.168.1.1\Path01\Path02" /User:domain\%nik% %passwd% 2^>^&1 ^| Find /I "System error 1326 has occurred."') DO SET "ACTSTATUS=BAD" 
IF %ACTSTATUS%==BAD 
(
Echo "Some error found, please contact administrator." 
GOTO FORM_QMR 
) 
IF NOT %ACTSTATUS%==BAD(
Echo "Success." 
) 

:EXIT 
exit 

찾기 명령의 구문은 "잘못

수있는 사람 helpme ..

+0

1) 이미지가 아닌 코드를 올리십시오. 2) [This] (http://stackoverflow.com/a/25073859/2861476) 도움이됩니다. –

답변

2

에서 수정 약간의 실수가 있습니다 다음 코드 스 니펫 (필요한 경우 주석 처리 됨) :,388,368,775,502,153,210들 choice.exenet.exe 설정 활용합니다 ERRORLEVEL :

@ECHO OFF 
SETLOCAL 
:MENU 
Title MyTitle 

Echo --------------- MENU ----------------------- 
Echo Press 1 for start or reload program. 
Echo Press 0 for exit. 
Echo Choose: 

CHOICE /C 10 /M "Press 1 for start or reload program, 0 for exit." 
IF errorlevel 2 GOTO EXIT 

:FORM_QMR 
Echo ---------- Fill this Form (%userdomain%) ---------- 
SET /p nik="Insert Your ID :" 
SET /p passwd="Insert Your Password :" 

IF %userdomain% == DOMAIN ( 
    set "_shar=\\myserver\Path01\Path02" 
    set "_user=/User:domain\%nik%" 
) else (
    set "_shar=\\192.168.1.1\Path01\Path02" 
    set "_user=/User:domain\%nik%" 
) 

>NUL 2>&1 NET USE "%_shar%" %_user% "%passwd%"&&SET "ACTSTATUS=OK"||SET "ACTSTATUS=BAD" 

IF "%ACTSTATUS%"=="BAD" (
    Echo "Some error found, please contact administrator." 
    GOTO FORM_QMR 
) else (
    Echo "Success." 
) 
:EXIT 

설명 :

+0

이유 ** : 공통 ** 항상 반환 성공? – ikwijaya

+0

@ikwijaya 죄송합니다. '2 ^>^& 1' 대신에'2 ^> NUL'이 효과가 있습니다. – JosefZ

+0

alhamdulillah, nuhun pisan. 고마워요 .. – ikwijaya

1

(는 associ와 동일한 물리적 행에 있어야합니다 ated if.

같은 의견은 ) else (

해야 do

else 간다 아니하는 경우, (더 숙련 된 사용자를 제외하고 ...) 꾸물 거리지 또는 괜찮은 남자