PowerShell执行指定网卡ipconfig /renew超时控制命令报错,求正确写法
问题原因与解决方法
错误出在带空格的网卡名参数的引号转义上。在cmd环境下调用powershell.exe时,嵌套的双引号需要正确转义,否则cmd会错误解析命令行边界,导致参数不完整。
正确命令写法
写法一:转义双引号
将网卡名的双引号用\"转义,避免cmd解析冲突:
powershell.exe "Start-Process 'ipconfig.exe' -ArgumentList '/renew', \"Ethernet 3\" -NoNewWindow -PassThru | % { if(-not $_.WaitForExit(15000)) { $_.Kill() } }"
写法二:用单引号包裹网卡名
直接用单引号包裹带空格的网卡名,同时简化可执行文件的引号(非必需,仅更简洁):
powershell.exe "Start-Process ipconfig.exe -ArgumentList '/renew', 'Ethernet 3' -NoNewWindow -PassThru | ForEach-Object { if (-not $_.WaitForExit(15000)) { $_.Kill() } }"
为什么ping命令能正常运行
ping的参数都是无空格的字符串,不需要嵌套引号,cmd解析时不会出现边界识别错误,因此能正常执行。
内容的提问来源于stack exchange,提问作者user2956477
相关产品推荐
相关产品推荐

