在Windows上,可以在PATHEXT中使用的扩展有限制吗?

问题描述:

我想在我的Windows机器上设置文件关联,使扩展名为.script的文件不需要指定扩展名(很像.bat,.ps1, .py文件)。在Windows上,可以在PATHEXT中使用的扩展有限制吗?

我曾尝试使用下面的批处理文件设置好了:

REG ADD HKCU\Environment /v PATHEXT /t REG_EXPAND_SZ /d "%%PATHEXT%%;.script" 
REG ADD HKCU\Software\Classes\.script /ve /d "Script.File" 
REG ADD HKCU\Software\Classes\Script.File /ve /d "Script file with hashbang line" 
REG ADD HKCU\Software\Classes\Script.File\shell\open\command /ve /d "\"C:\WINDOWS\py.exe\" \"%%1\" %%*" 

几乎作品,但是当我运行一个.script文件,它在一个新的窗口中运行,而不是在我目前的控制台会话。

如果我更改扩展名,我选择了更短的东西,如.sf,那么它工作正常。

控制台中可以使用的文件扩展名是否有限制,它们必须少于3个字符或什么?

(如果相关,则在Windows 7,64位上)。

更新:这似乎只发生在Powershell中。 CMD和TCC(TCC/LE)都按预期工作(脚本在控制台会话中运行)。

看起来这是在PowerShell中一个已知的错误:https://connect.microsoft.com/PowerShell/feedback/details/238550/power-shell-trimming-extension-to-3-characters-when-resolving-file-associations

从错误报告,它看起来像MS不打算解决它:-(