我在我的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命令?
发布于 2014-11-10 10:46:21
ls是get-childitem命令的Powershell中的别名。如果您想运行一个名为ls的外部命令,则需要强制Powershell忽略它自己的ls命令。
您可以尝试运行ls.exe,或者指定MinGW命令的路径,或者取消定义Powershell别名。或者学习使用Powershell自己的ls命令的选项。
与ls -al最接近的Powershell将是ls -Force,它将显示所有隐藏的系统文件和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-ChildItemhttps://stackoverflow.com/questions/26841815
复制相似问题