배치 파일 - 기본 게이트 방법을 구성 요소 부분으로 분할하고 숫자를 추가 한 다음 다시 구성


4

기본적으로, 내가해야 할 일은 아래 코드로 수행 한 Win7 머신의 기본 게이트웨이를 얻는 것이다.

@echo off
for /f "skip=1 delims={}, " %%A in ('wmic nicconfig get defaultIPgateway') do for /f "tokens=1" %%B in ("%%~A") do set "IP=%%~B"
echo %IP%

문제는, 내가해야할 일은 마지막 부분을 잡아 당기는 것입니다. 10.10.10.1, 나는 필요해. 1, 그것을 확인하십시오 1, 65, 83 또는 192 ) 숫자를 더한 다음 전체 IP로 다시 구성하십시오 - 예. 10.10.10.2

나는 쪼그리고 앉아서 ...

나는있다 :

FOR /F "DELIMS=. TOKENS=4" %a IN %%IP%% DO ECHO %d

내가 뭘 잘못하고 있죠?

도움말 크게 감사하겠습니다.

감사,


/ / "TOKENS = 4 DELIMS =."%% IN ( "% IP %") DO ECHO %% f 이것은 나에게 2를 얻은 것 같습니다.
Toby MacDonnell

최신 의견의 코드가 마지막 옥텟을 얻는다면 (10.1.1.2에서 "2"라는 뜻으로 가정), 대답 할 질문에 남은 것이 무엇인지 확신 할 수 없습니까?
Ƭᴇcʜιᴇ007

그래, 내가 내 자신의 질문에 답하는 것을 끝내 었다고 생각한다.
Toby MacDonnell

답변:


1

기본 게이트웨이 IP 주소에서 마지막 옥텟을 가져 오는 방법은 무엇입니까?

다음 배치 파일을 사용하십시오.

@echo off
setlocal
setlocal enabledelayedexpansion
rem throw away everything except the ip address line 
for /f "usebackq" %%a in (`wmic nicconfig get defaultIPgateway ^| findstr "{"`) do (
  rem we have for example {"192.168.42.129"}
  rem split on " and get 2nd token
  for /f delims^=^"^ tokens^=2 %%b in ('echo %%a') do (
     rem we have 192.168.42.129
     rem split on . and get 4 tokens (octets)
    for /f "tokens=1-4 delims=." %%c in ("%%b") do (
      rem we have 129
      set _o1=%%c
      set _o2=%%d
      set _o3=%%e
      set _o4=%%f
      )
    )
  )
echo %_o4%
endlocal

더 읽을 거리


많은 감사, 정말로 매우 청초한!!
Toby MacDonnell
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.