기 타 배치파일 고수님들 소환 합니다~ ㅠ_ㅠ
2017.05.07 12:55
안녕하세요 고수님들 ^^
제가 실력이 부족하여 이렇게 도움을 요청하고자 글을 올립니다.
제가 원하고자 하는 내용은
D 드라이브에 IP.txt 라는 문서에서
IP와 게이트웨이 정보를 추출하여 자동입력 할 수 있게 하는 배치파일을
만들려고 하는데
검색하다가 나오는 정보를 수정해서 사용하려 해도 잘 안되는데요 ㅠㅠ
우선 소스를 본문에 첨부 하도록 하겠습니다
-----------------------------------------------------------------------------------
@SETLOCAL ENABLEEXTENSIONS
@SETLOCAL ENABLEDELAYEDEXPANSION
@IF /I (%debug%) EQU (y) (echo on) else (echo off)
SET "_IPBackupDIR=D:\"
SET "_IPBackupFile=%_IPBackupDIR%\ip.txt"
IF /i "%~1" NEQ "" (
SET "_IPBackupDIR=%~dp1"
SET "_IPBackupFile=%~1"
)
IF NOT EXIST %_IPBackupFile% @echo
For /f "usebackq tokens=1,2,3,4,5 delims=()." %%a IN (`findstr /c:"IP" %_IPBackupFile%`) DO (
SET /a "_IP1=%%b"
SET /a "_IP2=%%c"
SET /a "_IP3=%%d"
SET /a "_IP4=%%e"
)
set "IP=%IP1%.%IP2%.%IP3%.%IP4%"
echo %IP%
For /f "usebackq tokens=1,2,3,4,5 delims=" %%a IN (`findstr /c:"GW" %_IPBackupFile%`) DO (
SET /a "GW1=%%b"
SET /a "GW2=%%c"
SET /a "GW3=%%d"
SET /a "GW4=%%e"
)
set "GW=%IP1%.%IP2%.%IP3%.%GW1%"
echo %GW%
Set NetConnectionID="LocalAreaNetwork" >nul 2>&1
netsh int ipv4 set address "로컬 영역 연결" static %IP% 255.255.255.0 %GW%
pause
-----------------------------------------------------------------------------------------------
IP.txt 내용은
IP=(192.168.0.5)
GW=(192.168.0.1)
이런 식으로 입력을 해야지만 정상 입력이 되는데
저는
IP 192.168.0.5 <---------- 등호(=)와 괄호를 제외하고 입력(ip나 gw를 대소문자 구별없이 입력)
GW 1 <---------- 게이트웨이 마지막 자릿수만 입력
이렇게 입력을 하여서 사용하고 싶어서
수정을 해도 잘 안되네요...
두서없이 막 입력 하다보니 내용이 길어졌네요..
소스 내용은 길까봐 파일첨부에도 넣어 놓겠습니다
부디 고수님들 도움 부탁드립니다
댓글 [6]
-
차일드 2017.05.07 13:25 -
efny 2017.05.07 15:11
제대로 동작하는 소스인가요? 안 되는 것 같은데..
일단 말씀하신 내용은 수정해봤습니다.
------------------------------------------
@echo off
SET "_IPBackupDIR=D:"
SET "_IPBackupFile=%_IPBackupDIR%\ip.txt"IF NOT EXIST "%_IPBackupFile%" echo %_IPBackupFile% 파일이 존재하지 않습니다.& pause& goto :EOF
For /f "usebackq tokens=2,3,4,5 delims=. " %%a IN (`findstr /c:"IP" %_IPBackupFile%`) DO (
SET "IP=%%a.%%b.%%c.%%d"
SET "GW=%%a.%%b.%%c"
)For /f "usebackq tokens=2 delims= " %%a IN (`findstr /c:"GW" %_IPBackupFile%`) DO (
SET "GW=%GW%.%%a"
)echo %IP%
echo %GW%netsh int ipv4 set address "로컬 영역 연결" static %IP% 255.255.255.0 %GW%
pause
-
마성의남자 2017.05.07 16:58
와우.......이렇게 하는 방법이 있었군요....역시 고수님 ^^
좀더 공부를 해봐야 겠네요....
감사 합니다 ^^
-
파도사랑 2017.05.07 15:43
@SETLOCAL ENABLEEXTENSIONS
@SETLOCAL ENABLEDELAYEDEXPANSION
@IF /I (%debug%) EQU (y) (echo on) else (echo off)
SET "_IPBackupDIR=D:\"
SET "_IPBackupFile=%_IPBackupDIR%\IP.txt"
IF /i "%~1" NEQ "" (
SET "_IPBackupDIR=%~dp1"
SET "_IPBackupFile=%~1"
)
IF NOT EXIST %_IPBackupFile% @echo
For /f "usebackq tokens=1,2,3,4,5 delims=. " %%a IN (`findstr /c:"IP" "%_IPBackupFile%"`) DO (delims=. 점은 구분자 입니다. 테스트해보니 그러더군요.
SET IP0=%%a 설명 : 공간을 만들면 안되더군요.
SET IP1=%%b 설명 : 공간을 만들면 안되더군요.
SET IP2=%%c 설명 : 공간을 만들면 안되더군요.
SET IP3=%%d 설명 : 공간을 만들면 안되더군요.
SET IP4=%%e 설명 : 공간을 만들면 안되더군요.
) 설명 : 공간을 만들면 안되더군요.set IP=%IP1%.%IP2%.%IP3%.%IP4%
echo %IP0% %IP%
For /f "usebackq tokens=1,2 delims= " %%a IN (`findstr /c:"GW" %_IPBackupFile%`) DO (
SET GW0=%%a
SET GW1=%%b
)set GW=%IP1%.%IP2%.%IP3%.%GW1%
echo %GW0% %GW%
Set NetConnectionID="LocalAreaNetwork" >nul 2>&1
netsh int ipv4 set address "로컬 영역 연결" static %IP% 255.255.255.0 %GW%
pause첨부파일 보시면 IP.txt 파일도 수정했고 test.bat 파일도 수정했어요.
근데 로컬영역연결 인 경우도 있지만 로컬영역연결2 인경우도 있어서
test1.bat 도 첨부합니다.
덕분에 공부했습니다. 감사합니다.
-
마성의남자 2017.05.07 16:59
덕분에 공부를 했다뇨..^^;;
제가 감사할 따름이죠~~
파도사랑님 같은 생각을 못 해봤네요...
아...역시 어렵지만 파면 팔수록 재미있네요~
수고 많으셨습니다 ^^
-
파도사랑 2017.05.08 10:53
수정 해보니 점이 아니어도 구분이 되서 파일 수정했어요
배치파일 하급취급 하시는분들한테 혼나요
https://windowsforum.kr/qna/8544809 참고 하시구요