【发布时间】:2015-05-11 23:10:24
【问题描述】:
我正在尝试从批处理文件 test.bat 运行 Powershell 命令。我实际上是从 Python Popen 而不是从 test.bat 调用这个命令。(我使用 test.bat 只是为了验证)
powershell.exe (Get-NetAdapterAdvancedProperty -Name "SLOT 1" -DisplayName "Jumbo Packet").DisplayValue
相同的命令在没有第二个参数 -DisplayName "Jumbo Packet" 来自 python 和批处理的情况下工作
使用第二个参数时出现的错误如下:
Get-NetAdapterAdvancedProperty : 位置参数不能 发现接受参数“1”。在行:1 字符:2 + (Get-NetAdapterAdvancedProperty -Name SLOT 1 -DisplayName:Jumbo Packet).DisplayV ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidArgument: (:) [Get-NetAdapterAdvancedProperty], ParameterBindingException + FullyQualifiedErrorId : PositionalParameterNotFound,Get-NetAdapterAdvanc edProperty
* 但是,如果我从 Powershell 窗口运行相同的命令,我会得到预期的结果。
(Get-NetAdapterAdvancedProperty -Name "SLOT 1" -DisplayName "Jumbo Packet").DisplayValue
我是 Powershell 新手。感谢您的帮助
Python 代码:
iface="SLOT 1"
cmd= 'powershell.exe (Get-NetAdapterAdvancedProperty -Name "'+ iface +'" -DisplayName "Jumbo Packet").DisplayValue'
conn.modules.os.popen(cmd).read()
【问题讨论】:
标签: windows powershell batch-file python-3.x powershell-3.0