kum*_*rsh 2 windows powershell mingw
我在我的 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
Run Code Online (Sandbox Code Playgroud)
如何通过 Powershell 正确使用所有 MinGW/msys 命令?
ls是 Powershell 中get-childitem命令的别名。如果你想运行一个名为的外部命令,ls你需要强制 Powershell 忽略它自己的ls命令。
您可以尝试运行ls.exe,或指定 MinGW 命令的路径,或取消定义 Powershell 别名。或者学习使用 Powershell 自己的ls命令的选项。
最接近的 Powershell 等效项ls -al是ls -ForceThis will display all hidden and system files and Powershell's default output forls看起来有点像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
Run Code Online (Sandbox Code Playgroud)
如果您不想学习新命令:
PS C:\Users\IEUser> set-alias which gcm
PS C:\Users\IEUser> which ls
CommandType Name Version Source
----------- ---- ------- ------
Alias ls -> Get-ChildItem
Run Code Online (Sandbox Code Playgroud)