我需要配置多台机器,以自动设置他们的IP地址从动态到静态。
我有一个批处理文件将IP地址设置为静态的,如下所示:
netsh interface ipv4 set address name="Ethernet" source=static ^
addr=192.168.200.200 mask=255.255.255.0 gateway=192.168.200.1
pause
exit /b 0但我必须手动在.bat文件中写入IP地址、掩码和网关。
如何检索机器的当前IP地址(以及当前的掩码和网关)并自动将其设置为静态,而无需每次修改.bat文件?
发布于 2022-05-09 15:18:28
首先,您需要检索当前ip地址。
如果您对接口始终使用相同的名称,这可能很容易。
setlocal
set "interface_name=Ethernet"
REM *** Convert the output lines from netsh into variables
for /F "tokens=1,* delims=:" %%a in ('"netsh interface ipv4 show addresses name="%interface_name%""') do (
REM *** Get rid of leaing spaces and TABS
for /F %%a in ("%%a") DO for /F %%b in ("%%b") DO (
set "__%%a=%%b"
)
)
REM *** Show all variables beginning with "__"
set __
if "%__DHCP%" NEQ "Yes" goto :no_dhcp
:check_ip_prefix
set "ip_addr=%__IP-address%"
if "%ip_addr:192.168.=%" EQU "%ip_addr%" goto :wrong_ip_prefix
netsh interface ipv4 set address name="%interface_name%" source=static ^
addr=%ip_addr% mask=255.255.255.0 gateway=%__default_gateway%您可能需要更改一些变量名称,因为名称与语言有关(我使用的是德语版本)。
https://stackoverflow.com/questions/72169265
复制相似问题