FAR 3, работающий в Win7 под моей основной учеткой, почему-то запускает скрипты .ps1 в новом окне. От способа запуска не зависит - хоть по Enter, хоть по комстроке .\file.ps1. Но под другими учетками, в том числе вновь создаваемыми, запускает, как и положено, в своей консоли. cmd.exe под любой учеткой тоже запускает .ps1 в своей консоли.
В File Associations этого профиля FAR есть только .mak.
FAR 5665, чуть раньше был 5577.
Грешу на то, что когда-то воспользовался виндовым "Open with..." для типа ps1. Но та ассоциация давным-давно удалена, ее нет ни в таблице Default programs, ни в соответствующих разделах реестра. В HKCU моей учетки вообще нет никаких локальных настроек для PowerShell.
Какие еще настройки, кроме File Associations, FAR использует для выбора режима запуска файла по расширению?
Скрипт PowerShell (.ps1) запускается в новом окне Topic is solved
- DrKnS
- Posts: 6114
- Joined: Thu 04 Aug, 2005 06:44
- Location: Kyiv
- Has thanked: 12 times
- Been thanked: 426 times
Скрипт PowerShell (.ps1) запускается в новом окне
О, там магия.
Но если очень упрощенно, то сначала ищется ассоциированный тип в HKCR\.ps1\(Default) или HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.ps1.
Например, Microsoft.PowerShellScript.1.
Потом в HKCR\Microsoft.PowerShellScript.1\shell\(Default) ищется его Action.
Например, Open.
Потом в HKCR\Microsoft.PowerShellScript.1\Shell\Open\Command\(Default) ищется ассоциированное приложение.
Потом это приложение ищется на диске и обнюхивается. Если оно консольное, то открывается в том же окне.
В противном случае, а также если любой из шагов выше не удался - в отдельном.
Кстати, у меня ps1 вообще открывается в notepad, в Win7 и 10. И, вроде бы, так было всегда.
Я там нашел и поправил в 5697 пару мелких багов, которые косвенно могли влиять (а могли и не влиять).
-
- Posts: 63
- Joined: Tue 26 Nov, 2013 06:39
- Location: Новосибирск
- Has thanked: 1 time
- Been thanked: 1 time
Скрипт PowerShell (.ps1) запускается в новом окне
О, спасибо! Как раз в FileExts и обнаружился .ps1, которого нет в других учетках. Я туда даже не смотрел (искал "powershell" только в именах ключей). После удаления FAR заработал, как надо.
Что интересно, в этом .ps1 я не вижу ничего крамольного:
\OpenWithList
"a"="powershell.exe"
"MRUList"="a"
\OpenWithProgids
"Microsoft.PowerShellScript.1"=hex(0):
\UserChoice
"Progid"="Applications\\powershell.exe"
Такое впечатление, что FAR косячит с обнюхиванием файла.
- DrKnS
- Posts: 6114
- Joined: Thu 04 Aug, 2005 06:44
- Location: Kyiv
- Has thanked: 12 times
- Been thanked: 426 times
Скрипт PowerShell (.ps1) запускается в новом окне
Я тоже ничего такого не вижу.
Однако, far лезет в этот ключ лично только в ОС < Vista, в новых ОС используется IApplicationAssociationRegistration::QueryCurrentDefault. Как именно оно работает и почему ему этот ключ сносит крышу, знают только в Microsoft.
У вас в HKCR\Applications\powershell.exe что-то есть?