【发布时间】:2016-08-22 17:46:05
【问题描述】:
我正在使用这个 powershell 命令来获取特定的用户配置文件
"Get-WmiObject -Class Win32_UserProfile | Where-Object {$_.LocalPath -eq 'C:\Users\Pela'}"
但是当我通过调用 powershell 在 cmd 中使用相同的命令时,我得到了 'Where-Object 未被识别为内部或外部命令、可运行程序或批处理文件'
我在cmd中运行的命令如下:- "powershell Get-WmiObject -Class Win32_UserProfile | Where-Object {$_.LocalPath -eq 'C:\Users\Pela'}"
我只需要从 cmd 运行此命令,我没有任何其他选项。 所以请给我一个“Where-Object”的替代方案
【问题讨论】:
-
powershell "powershell Get-WmiObject -Class Win32_UserProfile | Where-Object {$_.LocalPath -eq 'C:\Users\Pela'}" -
@PetSerAl 正确答案是escape管道
^| -
@DavidPostill 但是,如果您不使用引号,那么您会丢失相邻的空格:
powershell echo 'multiple spaces'与powershell "echo 'multiple spaces'"。如果|在引号内,则不需要对其进行转义。 (multiple和spaces之间应该是多个空格,但是在cmets中好像没有保留) -
@PetSerAl 注意。但是在这种情况下转义是有效的(不需要担心多个空格)。
-
使用 powershell "Get-WmiObject -Class Win32_UserProfile | Where-Object {$_.LocalPath -eq 'C:\Users\Pela'}" 工作...谢谢
标签: windows powershell batch-file cmd