web-dev-qa-db-ja.com

バッチファイルを使用してローカルIPを表示する方法は?

これまでのところ、バッチファイルには次のものがあります。

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

ただし、バッチファイルを実行すると、MyIP.txtが表示されても空になります。

一方、Windows-Start検索フィールドから各行を次々に実行すると機能します。

それを修正する方法はありますか?

1
user231056

ここのバッチファイルから正常に動作します。

カップルの提案:

  • HOMEPATHファイルのパスを引用符で囲んで、潜在的なスペースを補ってみてください。
    %comspec% /c ipconfig | find "IPv4" > "%HOMEPATH%\desktop\MyIP.txt"
  • 有効なホームパスとデスクトップ(「システム」アカウントではない)を持つユーザーとしてバッチファイルを実行していることを確認してください。
  • 別のバッチファイルでecho %HOMEPATH%だけを試し、同じ方法で起動します。出力をチェックして、%HOMEPATH%が期待どおりに拡張されるかどうかを確認します(バッチの最後に「一時停止」を追加して、待機させます)キーを押す)。
3

これはWindows10で正常に機能します。

@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アドレスとプライベートIPアドレスの両方を返します。

1
Mahadev Gouda

以下のコードをバッチファイルとして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
1
user286064

バッチファイルを使用する必要がありますか?要件に応じて、GetIP.vbsとして保存され、実行された次のコードは、メモ帳を起動し、メモ帳に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
0
Karan