首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >PowerShell和cmd返回不同的结果

PowerShell和cmd返回不同的结果
EN

Stack Overflow用户
提问于 2018-06-02 23:33:36
回答 1查看 171关注 0票数 2

为什么它们返回不同的结果?关于cmd命令,我遗漏了什么?

PS C:\src\t\cad> Get-ChildItem -Directory -Recurse -Path $Env:ProgramFiles -ErrorAction SilentlyContinue | Measure-Object

Count    : 17381

来自cmd.exe的:

10:28:18.87  C:\src\t\cad
C:>powershell -NoProfile -Command "Get-ChildItem -Directory -Recurse -Path '"%ProgramFiles%"' -ErrorAction SilentlyContinue ^| Measure-Object"

Count    : 0
EN

回答 1

Stack Overflow用户

发布于 2018-06-02 23:49:09

我认为-ErrorAction SilentlyContinue抑制了第一个命令中的错误,因此不会向下传递任何内容到Measure-Object

在PSCore上测试我得到:

pwsh -command "get-process ^| measure-object"
get-process : Cannot find a process with the name "^".
Count    : 0

但是删除'^‘字符:

bash-3.2$ pwsh -command "get-process | measure-object"
Count    : 318

因此,我假设Windows PowerShell也是如此。在没有^的情况下尝试

powershell -NoProfile -Command "Get-ChildItem -Directory -Recurse -Path '"%ProgramFiles%"' -ErrorAction SilentlyContinue | Measure-Object"
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50658456

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档