如何使用批处理文件显示本地IP?

如何使用批处理文件显示本地IP?

到目前为止,我的批处理文件中有以下内容:

%comspec% /c ipconfig | find "IPv4" > %HOMEPATH%\desktop\MyIP.txt
%comspec% /c start notepad %HOMEPATH%\desktop\MyIP.txt

但是,当我运行批处理文件时,显示的MyIP.txt是空的。

另一方面,当我从 Windows-开始搜索字段逐行运行每一行时,它可以起作用。

有什么想法可以解决它吗?

答案1

此处的批处理文件运行良好。

几点建议:

  • 尝试将 HOMEPATH 文件路径括在引号中以弥补任何潜在的空格:
    %comspec% /c ipconfig | find "IPv4" > "%HOMEPATH%\desktop\MyIP.txt"
  • 确保您以具有有效 homepath 和桌面的用户身份运行批处理文件(而不是“系统”帐户)。
  • 在另一个批处理文件中单独尝试echo %HOMEPATH%并以相同的方式启动它,检查输出以查看 %HOMEPATH% 是否扩展到您期望的范围(提示在批处理末尾添加“暂停”以让它等待您按下键)。

答案2

将以下代码作为批处理文件保存在 system32 文件夹中。
对于 Windows 7,将批处理文件保存在 C:\Windows\System32 中。

@echo.
@echo                         IP INFORMATION
@echo                         By:Aswin Sha

@ipconfig/all | find "Subnet Mask"
@ipconfig/all | find "IPv4" 
@ipconfig/all | find "Default Gateway"
@ipconfig/all | find "Host Name"
@ipconfig/all | find "DNS Suffix Search List"
@ipconfig/all | find "Physical Address"
@ipconfig/all | find "DHCP Enabled"
@ipconfig/all | find "DHCP Server"
@ping 127.0.0.1
@echo.
@pause

答案3

这在 Windows 10 上工作正常:

@echo off
for /f "skip=1 delims={}, " %%A in ('wmic nicconfig get ipaddress') do for /f "tokens=1" %%B in ("%%~A") do set "IP=%%~B"
for /f "tokens=1 delims=:" %%j in ('ping %computername% -4 -n 1 ^| findstr Reply') do (
    set localip=%%j
)
echo Public IP is: %IP%
echo Local  IP is: %localip:~11%

它返回公共和私有 IP 地址。

答案4

使用批处理文件?根据您的要求,以下代码保存为获取IP地址执行后会启动记事本并在其中打印你的 IP 地址没有首先保存为文本文件:

Set colItems = GetObject("winmgmts:\\.\root\CIMV2").ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled=TRUE", , 48)
For Each objItem In colItems
    If InStr(objItem.IPAddress(0), ":") = 0 Then
        strIP = "Description: " & objItem.Description & vbCR & "IP Address : " & objItem.IPAddress(0) & vbNewLine
    End If
Next
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "Notepad"
WScript.Sleep 100
WshShell.AppActivate "Notepad"
WshShell.SendKeys strIP

相关内容