Изменения ftype игнорируются. Откуда Windows получает "неправильное" значение? Как я могу применить свои изменения?
assoc и ftype, обеспечивают сопоставление между расширением и программой, запускаемой для этого расширения. И по какой-то причине, несмотря на то, что я указал в Assoc и ftype, загружается какое-то другое приложение, поэтому кажется, что ОС читает свои данные (о том, какое приложение нужно запускать), откуда-то еще, даже не проверяя Assoc и Ftype.
У меня есть расширение файла.vbsc, которое связано с cscript, и мне бы хотелось, чтобы оно было связано с чем-то другим, даже calc.exe. Я просто хочу изменить ассоциацию, но, похоже, не могу. Но я могу для других расширений. Ниже приведена демонстрация.
В демонстрации я использую assoc и ftype для создания ассоциации для расширения файла.ab5, и демонстрация показывает, что это работает. Затем я изменяю ассоциацию, чтобы она вызывала другую программу, демонстрация показывает, что она работает. Затем я пробую это с моим расширением проблемы, и это не работает. И это не потому, что мое расширение проблемы - 4 символа длиной, есть много длинных расширений.
Ниже этой второй демонстрации, которую я описываю, где вы прокручиваете ее вниз. Так что он читает что-то еще до ftype.
C:\Users\user>assoc | grep -i vbsc
.vbsc=VBS_Cscr
C:\Users\user>assoc .ab5=AB5file
.ab5=AB5file
C:\Users\user>ftype AB5file=c:\windows\system32\calc.exe
AB5file=c:\windows\system32\calc.exe
C:\Users\user>echo asdf>a.ab5
C:\Users\user>a.ab5
C:\Users\user>rem the above brings up calculator
C:\Users\user>ftype AB5file=c:\windows\system32\charmap.exe
AB5file=c:\windows\system32\charmap.exe
C:\Users\user>a.ab5
C:\Users\user>rem the above things up charmap
C:\Users\user>abc.vbsc
Microsoft (R) Windows Script Host Version 5.8
Copyright (C) Microsoft Corporation. All rights reserved.
Input Error: There is no script engine for file extension ".vbsc".
C:\Users\user>assoc | find /i "vbs"
.vbs=VBSFile
.vbsc=VBS_Cscr
C:\Users\user>ftype | find /i "vbs"
VBSFile=%SystemRoot%\System32\WScript.exe "%1" %*
VBS_Cscr=c:\windows\system32\calc.exe
C:\Users\user>
В этой демонстрации я удаляю расширение. Это все еще ассоциируется с cscript.exe
Удаление расширения
C:\Windows\System32>assoc .vbsc=
C:\Windows\System32>ftype VBSFile=
C:\Windows\System32>aaa.vbsc
Microsoft (R) Windows Script Host Version 5.8
Copyright (C) Microsoft Corporation. All rights reserved.
Input Error: There is no script engine for file extension ".vbsc".
C:\Windows\System32>
1 ответ
Кажется, что это связано с различными способами, которые я пытался установить расширение VBSC.
Я не могу объяснить, как это произошло, но нашел способ решить его, который я исследую.
Для начала, когда я посмотрел на изменение ассоциации, я посмотрел на "редактор программ по умолчанию" и запустил.. "изменить тип файла, связанный с конкретным расширением" и сделать значок.vbsc и выбрать программу с открытым с и ассоциировать с Ftype.
Когда я смотрел на значок даже после того, как ftype был установлен, например, на calc или charmap, значок был не слишком странным, для значка, который выглядел как нечто, не похожее на calc или charmap, это был wscript.exe или cscript.exe
Без сомнения, причина была в том, что при установке ассоциации иконки с "open with" она меняет значок, и поэтому более поздние изменения с ftype не изменились. Меня не волнует иконка, но я подумал, что, может быть, была какая-то другая давняя ассоциация с cscript, которая могла бы сдвинуться с места, когда я изменил ее на open with. Может быть, 'open with' немного сильнее / более убедительно, чем ftype.
Я думаю, что 'open with' утверждал, что он тоже был установлен на calc, но я подумал, что, возможно, он не установлен должным образом... изменил его на charmap, и эй presto, теперь набираю имя файла в cmd open charmap и ftype updated тоже.
Я попытался перезапустить проблему, но проблема не перезапускается, и ftype теперь работает нормально. Но если бы это случилось снова, я бы знал, чтобы создать иконку с этим расширением и использовать 'open with', и пусть это сделает свое дело, и установите ftype, и ассоциация должна быть создана правильно.