我正在尝试在我的 Windows 机器上设置文件关联,以便在.script
不需要指定扩展名的情况下运行具有扩展名的文件(很像.bat
, .ps1
,.py
文件)。
我已经使用以下批处理文件进行了设置:
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) 都按预期工作(脚本在控制台会话中运行)。