在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不打算解决它:-(