Я зіткнувся з тією ж проблемою, що і @jtpereyda, і рішення від @bobbymcr також не працювало для мене. Я намагався перенести всі параметри командного рядка в сценарії node.js, не потребуючи node.exe в команді.
Проблема полягає в тому, що якщо ви вже пов’язали програму з розширенням через Open Withдіалогове вікно, ви створили об'єднання додатків, а не асоціацію розширення файлів між двома. І прикладні асоціації мають перевагу.
Якщо ви не проти редагувати реєстр, ви можете змінити (Default)ключ наступним шляхом:
HKEY_CLASSES_ROOT\Applications\node.exe\shell\open\command
Ви повинні замінити node.exeпрограму, яку ви налаштовуєте.
Або ви можете просто видалити папку програми з HKEY_CLASSES_ROOT\Applicationsпапки повністю і ваша ftypeасоціація почне працювати.
Не забудьте використовувати те, %*що буде передано в решті не вказаних аргументів командного рядка або взагалі нічого. Якщо ви зробите, у "%2" "%3" "%4" "%5"вашій програмі буде передано 5 порожніх рядкових рядків, коли ви не вкажете жодних аргументів командного рядка.
Нарешті, якщо ви не в порядку зі зміною реєстру вручну, то ви можете використовувати безкоштовний інструмент від Nirsoft - FileTypesManager - http://www.nirsoft.net/utils/file_types_manager.html
Асоціації файлів з’являться у верхній частині списку без будь-якого тексту в першому стовпці розширення. Просто знайдіть у списку ім'я виконуваного файлу та виберіть його, щоб змінити command lineполе для назви openдії.
У Windows7 зміни відображалися негайно без перезавантаження або перезавантаження програми. Однак у утиліти Nirsoft є функція "Оновити робочий стіл" на будь-яких модифікаціях, тому це змушує мене вважати, що, можливо, Vista або попередні версії ОС кешуватимуть дані. У цьому випадку на корисність буде краща ставка, інакше вам може знадобитися вийти та увійти, щоб побачити зміни.