gpt4 book ai didi

windows - 如何在 PowerShell 中将参数传递给类 Unix 命令(通过 MinGW)

转载 作者:可可西里 更新时间:2023-11-01 11:18:19 24 4
gpt4 key购买 nike

我在我的 Windows 机器上使用 MinGW,当我将它与 command-prompt 一起使用时,一切都按预期工作:

  • ls 列出可见文件
  • ls -a 列出所有文件等

但是,当我启动 Powershell 时,当我将参数传递给我的命令时,它会一直抛出错误:

D:\>ls -al .

Get-ChildItem : A parameter cannot be found that matches parameter name 'al'.
At line:1 char:4
+ ls -al .
+ ~~~
+ CategoryInfo : InvalidArgument: (:) [Get-ChildItem], ParameterBindingException
+ FullyQualifiedErrorId : NamedParameterNotFound,Microsoft.Powershell.Commands.GetChildItemCommand

如何通过 Powershell 正确使用所有 MinGW/msys 命令?

最佳答案

ls 是 Powershell 中 get-childitem 命令的别名。如果您想运行名为 ls 的外部命令,您需要强制 Powershell 忽略它自己的 ls 命令。

您可以尝试运行 ls.exe,或指定 MinGW 命令的路径,或取消定义 Powershell 别名。或者学习使用 Powershell 自己的 ls 命令的选项。

最接近 ls -al 的 Powershell 是 ls -Force 这将显示所有隐藏文件和系统文件以及 Powershell 的默认输出 ls 看起来有点像 ls -l 格式。

您可以使用 Powershell 的 get-command 检查将运行哪个命令,它与 which 执行类似的工作(或使用 gcm 作为速记减少打字:

PS C:\Users\IEUser> get-command ls.exe

CommandType Name Version Source
----------- ---- ------- ------
Application ls.exe 0.0.0.0 C:\Program Files\OpenSSH\bin\ls.exe


PS C:\Users\IEUser> get-command ls

CommandType Name Version Source
----------- ---- ------- ------
Alias ls -> Get-ChildItem

PS C:\Users\IEUser> gcm ls

CommandType Name Version Source
----------- ---- ------- ------
Alias ls -> Get-ChildItem


PS C:\Users\IEUser> gcm ls.exe

CommandType Name Version Source
----------- ---- ------- ------
Application ls.exe 0.0.0.0 C:\Program Files\OpenSSH\bin\ls.exe

如果你不想学习新命令:

PS C:\Users\IEUser> set-alias which gcm
PS C:\Users\IEUser> which ls

CommandType Name Version Source
----------- ---- ------- ------
Alias ls -> Get-ChildItem

关于windows - 如何在 PowerShell 中将参数传递给类 Unix 命令(通过 MinGW),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26841815/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com