You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Terminal与PowerShell中DIR命令的差异及参数报错问题咨询

Terminal与PowerShell中DIR命令的差异及参数报错问题咨询

嗨,这个问题其实是因为PowerShell和传统CMD(你说的Terminal)是完全不同的Shell环境,虽然它们都用dir这个词,但背后对应的命令和参数逻辑天差地别,并不是简单的扩展关系~

为什么会报错?

在CMD里,dir /A是内置命令的参数写法,/A用来指定要显示所有属性的文件/目录。但在PowerShell里:

  • dir只是Get-ChildItem这个PowerShell cmdlet的别名,不是CMD的dir命令。
  • PowerShell的参数语法是用-开头(比如-Path-Force),而不是CMD的/。所以当你输入dir /A时,PowerShell会把/A当成一个路径来解析,也就是去找C:\A这个不存在的路径,自然就抛出找不到路径的错误了。

怎么在PowerShell里实现同样的效果?

有两种常用方法:

  1. 使用PowerShell原生语法
    如果你想显示所有属性的文件(包括隐藏、系统文件),可以用Get-ChildItem的对应参数:

    • 显示隐藏和系统文件:Get-ChildItem -Force(或者简写dir -Force
    • 查看所有属性的项:Get-ChildItem -Attributes *
      你可以用Get-Help Get-ChildItem查看完整的参数说明,了解更多用法。
  2. 直接调用CMD的dir命令
    如果习惯了CMD的参数写法,也可以在PowerShell里直接让CMD来执行这个命令:

    cmd /c dir /A
    

小提示

可以输入Get-Alias dir来确认dir在PowerShell里对应的实际命令,这样就能更清楚两者的区别啦~

备注:内容来源于stack exchange,提问作者konto

火山引擎 最新活动