解决两个具有相同名称的命令之间的冲突

时间:2019-10-06 22:16:38

标签: powershell

我在Windows 10上运行PowerShell,并排使用mingw和WinAVR。

我想同时使用mingw和WinAVR提供的make。 (由于某些原因,使用mingw的make会在处理Arduino代码时引起问题。)

但是我无法将C:\WinAVR-20100110\utils(包含WinAVR品牌)和C:\Program Files\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\bin都添加到路径,因为它们具有相同名称的可执行文件。

我可以做一些类似的事情,即在AVR之前将WinAVR提供的每个命令(从makeavr-make)吗?还是有其他散步的地方?

1 个答案:

答案 0 :(得分:1)

您可以:

  • 将您要作为make调用的一个可执行文件的目录添加到$env:Path(首先)-C:\Program Files\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\bin

  • 通过在您的$PROFILE文件中添加以下内容,
  • 将另一个定义为

Set-Alias avr-make C:\WinAVR-20100110\utils\make.exe

请注意,别名的优先级高于可执行文件。

请参见about_Aliasesabout_Command_Precedence


如果要为给定目录中的所有可执行文件定义此类别名,请使用以下方法:

Get-Item C:\WinAVR-20100110\utils\*.exe | ForEach-Object {
  Set-Alias ('avr-' + $_.BaseName) $_.FullName
}