查看此代码:
main
function main
{
cls
Write-Host "hi"
}
如果您是第一次运行它,将加载Windows鼠标属性窗口。
再次运行它会显示“hi”。
为什么会这样?
我知道main.cpl是Mouse Properties窗口。但是为什么它只是第一次打开,然后第二次Powershell意识到你实际上想要调用“主要”功能。
如果您想要鼠标属性窗口,那么Powershell不应该检测到这个并要求您编写main.cpl吗?
答案 0 :(得分:6)
因为在第一次调用main时,没有函数main,所以PowerShell正在寻找另一个名为main的东西来执行。第二次它知道main函数,并且优先于main.cpl。
解决方案很简单。在第一次调用之前声明main函数。
function main
{
cls
Write-Host "hi"
}
main
我没有回答为什么当你输入main时PowerShell决定执行main.cpl,但是如果你在$ env:path中有它,那么main.exe也是如此。