2013-06-25 187 views

回答

1

不是正好有分裂功能,但可以使用FOR完成的任務你想要:

for /f "tokens=2 delims=:" %%i in ('ipconfig ^| findstr /i "Default gateway" ^| findstr [0-9]') do echo %%i 
+0

真的,我想要這樣的單行命令。謝謝。但是,當我在cmd提示符下執行它時,它會顯示「%%,我此時意外」 –

+0

我修正了錯誤。而不是%%我們需要使用%i。這解決了我的問題。非常感謝你。 –

+1

批處理中使用'%% i',但在交互模式下使用'%i' –

1

在我的電腦上,有兩個網關返回,一個用於IPv4,一個用於IPv6。 findstr不區分它們。但是,對於我而言,IPv4是在IPv6之前返回的。此批處理文件提取IP地址從findstr輸出網關:

@echo off 

setlocal ENABLEDELAYEDEXPANSION 

for /f "tokens=2 delims=:" %%i in ('ipconfig ^| findstr "Default gateway"') do (
    if not defined _ip set _ip=%%i 
) 
for /f "tokens=1 delims= " %%i in ("!_ip!") do (
    set _ip=%%i 
) 

echo !_ip! 

endlocal & set yourvar=%_ip% 

我把它分成兩個獨立的for命令(而不是嵌套for命令),這樣我可以只搶了先「門戶」返回從findstr。結果有一個領先的空間,所以第二個for命令刪除前導空間。該& set yourvar=%_ip%在你到底是怎麼通過local塊的local變量之外,但你不必使用...

+0

我需要一個命令(在一行中),而不是腳本。這對我更有幫助 –

相關問題