无法在cmd中pipe道cmdlet对象

我正在使用这个PowerShell命令来获取一个特定的用户configuration文件

“Get-WmiObject -Class Win32_UserProfile | Where-Object {$ _。LocalPath -eq'C:\ Users \ Pela'}”

但是,当我在cmd中通过调用powershell使用这个相同的命令,我得到'哪里对象不被识别为内部或外部命令,可操作的程序或batch file'

我在cmd中运行的命令如下所示: – “powershell Get-WmiObject -Class Win32_UserProfile | Where-Object {$ _。LocalPath -eq'C:\ Users \ Pela'}”

我只需要从cmd运行这个命令,我没有任何其他选项。 所以请给我一个替代“Where-Object”

所以请给我一个替代“Where-Object”

 powershell Get-WmiObject -Class Win32_UserProfile | Where-Object {$_.LocalPath -eq 'C:\Users\Pela 

你不需要替代品。 上面的命令失败,因为管道|cmd shell解释,而不是被PowerShell

如果你逃脱管道^| 那么管道是按照预期通过PowerShell命令完成的:

 powershell Get-WmiObject -Class Win32_UserProfile ^| Where-Object {$_.LocalPath -eq 'C:\Users\Pela 

例:

 F:\test>powershell Get-WmiObject -Class Win32_UserProfile ^| Where-Object {$_.LocalPath -eq 'C:\Users\DavidPostill'} __GENUS : 2 __CLASS : Win32_UserProfile __SUPERCLASS : __DYNASTY : Win32_UserProfile __RELPATH : Win32_UserProfile.SID="S-1-5-21-1699878757-1063190524-3119395976-1000" __PROPERTY_COUNT : 12 __DERIVATION : {} __SERVER : HAL __NAMESPACE : root\cimv2 __PATH : \\HAL\root\cimv2:Win32_UserProfile.SID="S-1-5-21-1699878757-1063190524-3119395976-1000" LastDownloadTime : LastUploadTime : LastUseTime : 20160822200129.697000+000 Loaded : True LocalPath : C:\Users\DavidPostill RefCount : 146 RoamingConfigured : False RoamingPath : RoamingPreference : SID : S-1-5-21-1699878757-1063190524-3119395976-1000 Special : False Status : 0 PSComputerName : HAL 

进一步阅读

  • Windows CMD命令行的AZ索引 – 与Windows cmd行有关的所有东西的极好参考。
  • 语法 – 转义字符,分隔符和引号。