我正在尝试使用PHP运行以下批处理脚本(它从命令提示符运行正常)使用传递的参数更改IP
@echo off
setlocal enabledelayedexpansion
netsh int ip set address "EDU_LAN_Connection" static 172.31.%1.110 255.255.255.0 172.31.%1.1 1
在PHP中:
system("cmd /c C:\EDU_Project\change_ip.bat 6");
运行PHP脚本时出现以下错误:
Invalid address parameter (172.31.61.1 1). It should be a valid IPv4 address.
我不确定如何在参数中使用delayedexpansion。请帮忙!
答案 0 :(得分:1)
批处理参数仅使用%1
进行处理。不是%1%
相应地更改批处理文件:
netsh int ip set address "EDU_LAN_Connection" static 172.31.%1.110 255.255.255.0 172.31.%1.1 1
答案 1 :(得分:0)
而不是去寻找系统函数并将参数传递给批处理文件。我使用shell_exec直接从PHP运行netsh命令:
$var= 18;
shell_exec('netsh int ip set address name=\"EDU_LAN_Connection\" static 172.31.'.$var.'.110 255.255.255.0 172.31.'.$var.'.1 1');