2017-02-19 90 views
0

我想將IP地址設置爲一個變量,但我的代碼不起作用。設置不適用於for循環腳本窗口批處理

@echo off 

setlocal EnableDelayedExpansion enableextensions 

SET IP= 
for /f " tokens=14 delims= " %%i in ('ipconfig ^| findstr /c:"IPv4 Address"') do SET /P IP = %%i 
call :foo 

:foo 
SET _AA = IP 
echo _AA 
+0

如果你讀的幫助和文檔的命令確實有幫助你正在嘗試使用?設置命令不難理解。 – Squashman

回答

0

這裏實現你的目標的一種方式:

@Echo Off 
Set "IP=" 
For /F "Delims=" %%A In ('IPConfig^|Find "IPv4"') Do Set "IP=%%A" 
If Not Defined IP GoTo :EOF 
Set "IP=%IP:*: =%" 
Echo(Local variable %%IP%% resolves to %IP% 
Timeout -1 
GoTo :EOF 
+0

你真了不起!非常感謝你。 – Mert

2

空間在set

都在=兩側顯著刪除空格。

爲了引用內容var你需要使用%var%

批次的變量只是繼續行由行,直到達到一個goto或最終文件 - 。它沒有「程序」的概念。執行完for後,它將繼續並再次執行setecho。您需要一條線

goto :eof 

之前的標籤:foo。該指令進入檔案結尾(在這種情況下,結腸需要

+0

你能編輯代碼嗎? – Mert

+0

@Mert,所以你說你寧願有人給你魚,然後學會釣魚。 – Squashman