我在我的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命令?
答案 0 :(得分:4)
ls
是Powershell中get-childitem
命令的别名。如果要运行名为ls
的外部命令,则需要强制Powershell忽略其自己的ls
命令。
您可以尝试运行ls.exe
,或指定MinGW命令的路径,或取消定义Powershell别名。或者学习使用Powershell自己的ls
命令的选项。
最接近的ls -al
的Powershell将是ls -Force
这将显示所有隐藏和系统文件,而ls
的Powershell默认输出看起来有点像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
如果您不想学习新命令:
{{1}}