如何从 WMIC 检查 ReturnValue
How to check ReturnValue from WMIC
我正在设置一个简单的批处理文件来在 MS SQL Express 服务器上配置一些东西。配置项之一是启用TCP/IP协议。我已经让它与以下命令一起工作:
WMIC /NAMESPACE:\root\Microsoft\SqlServer\ComputerManagement15 PATH ServerNetworkProtocol Where ProtocolName='Tcp' CALL SetEnable
现在我想检查它是否有效。如果有效,我得到输出:
Executing (\PCNAME\root\Microsoft\SqlServer\ComputerManagement15:ServerNetworkProtocol.InstanceName="SQLEXPRESS",ProtocolName="Tcp")->SetEnable()
Method execution successful.
Out Parameters:
instance of __PARAMETERS
{
ReturnValue = 0;
};
为此,我必须以管理员身份 运行 批处理文件。如果我不这样做,我会得到输出:
Executing (\PCNAME\root\Microsoft\SqlServer\ComputerManagement15:ServerNetworkProtocol.InstanceName="SQLEXPRESS",ProtocolName="Tcp")->SetEnable()
Method execution successful.
Out Parameters:
instance of __PARAMETERS
{
ReturnValue = 2147942405;
};
唯一的区别是返回值。如何检查 return 值,例如根据我得到的 ReturnValue 是 0 还是其他值来回显“成功”或“失败”?
我也愿意通过使用另一个 wmic 命令来检查 TCP/IP 是否已启用来解决问题,但我一直无法找到这样做的方法。
你可以试试:
for /F "tokens=2 delims==; " %R in ('wmic /NameSpace:\root\Microsoft\SqlServer\ComputerManagement15 path ServerNetworkProtocol where ProtocolName='Tcp' call SetEnable ^| findstr /RC:"\<ReturnValue ="') do @echo/%R
提取 ReturnValue
的值,或者,如果您只想检查它是否为零:
wmic /NameSpace:\root\Microsoft\SqlServer\ComputerManagement15 path ServerNetworkProtocol where ProtocolName='Tcp' call SetEnable | findstr /RC:"\<ReturnValue = 0;\>" && (echo zero) || (echo non-zero)
我正在设置一个简单的批处理文件来在 MS SQL Express 服务器上配置一些东西。配置项之一是启用TCP/IP协议。我已经让它与以下命令一起工作:
WMIC /NAMESPACE:\root\Microsoft\SqlServer\ComputerManagement15 PATH ServerNetworkProtocol Where ProtocolName='Tcp' CALL SetEnable
现在我想检查它是否有效。如果有效,我得到输出:
Executing (\PCNAME\root\Microsoft\SqlServer\ComputerManagement15:ServerNetworkProtocol.InstanceName="SQLEXPRESS",ProtocolName="Tcp")->SetEnable()
Method execution successful.
Out Parameters:
instance of __PARAMETERS
{
ReturnValue = 0;
};
为此,我必须以管理员身份 运行 批处理文件。如果我不这样做,我会得到输出:
Executing (\PCNAME\root\Microsoft\SqlServer\ComputerManagement15:ServerNetworkProtocol.InstanceName="SQLEXPRESS",ProtocolName="Tcp")->SetEnable()
Method execution successful.
Out Parameters:
instance of __PARAMETERS
{
ReturnValue = 2147942405;
};
唯一的区别是返回值。如何检查 return 值,例如根据我得到的 ReturnValue 是 0 还是其他值来回显“成功”或“失败”?
我也愿意通过使用另一个 wmic 命令来检查 TCP/IP 是否已启用来解决问题,但我一直无法找到这样做的方法。
你可以试试:
for /F "tokens=2 delims==; " %R in ('wmic /NameSpace:\root\Microsoft\SqlServer\ComputerManagement15 path ServerNetworkProtocol where ProtocolName='Tcp' call SetEnable ^| findstr /RC:"\<ReturnValue ="') do @echo/%R
提取 ReturnValue
的值,或者,如果您只想检查它是否为零:
wmic /NameSpace:\root\Microsoft\SqlServer\ComputerManagement15 path ServerNetworkProtocol where ProtocolName='Tcp' call SetEnable | findstr /RC:"\<ReturnValue = 0;\>" && (echo zero) || (echo non-zero)