Zmiany ftype są ignorowane. Skąd system Windows pobiera „niepoprawną” wartość? Jak mogę wymusić moje zmiany?

2

assoc i ftype, zapewniają mapowanie między rozszerzeniem a programem do uruchomienia dla tego rozszerzenia. Z jakiegoś powodu, pomimo tego, co określiłem za pomocą assoc i ftype, ładowana jest inna aplikacja, więc wydaje się, że system operacyjny odczytuje swoje dane (na jakiej aplikacji uruchamia się), z innego miejsca, jeszcze przed sprawdzeniem assoc i ftype

Mam rozszerzenie pliku .vbsc, które jest związane z cscript i chciałbym, aby było skojarzone z czymś innym, nawet calc.exe. Ale mogę dla innych rozszerzeń. Poniżej znajduje się demonstracja.

W demonstracji używam assoc i ftype do utworzenia powiązania dla rozszerzenia pliku .ab5 i pokazu demonstracyjnego, który działa. Następnie zmieniam stowarzyszenie, aby wywołać inny program, pokaz pokazuje, że działa. Następnie wypróbuję to z moim rozszerzeniem problemu i to nie działa. I nie dlatego, że moje rozszerzenie problemu ma 4 znaki długości, istnieje wiele długich rozszerzeń.

Poniżej znajduje się druga demonstracja, którą opisuję, w której przewijasz do niej. Więc czyta coś innego przed 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>

W tej demonstracji usuwam rozszerzenie. Nadal kojarzy się z cscript.exe

Usuwanie rozszerzenia

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>
barlop
źródło
Czy ci, którzy głosowali za zamknięciem tego pytania, mogliby powiedzieć, dlaczego uważają, że powinno ono zostać zamknięte?
barlop

Odpowiedzi:

0

Wydaje się, że ma do czynienia z różnymi sposobami, w których próbowałem ustawić rozszerzenie vbsc.

Nie potrafię wyjaśnić, jak to się stało, ale znalazłem sposób na rozwiązanie tego, co zbadam.

Na początek, kiedy spojrzałem na zmianę skojarzenia, spojrzałem na „domyślny edytor programów” i zacząłem… „zmienić typ pliku skojarzony z określonym rozszerzeniem” i utworzyć ikonę .vbsc oraz wybrać program z otwartym i asoc ftype.

Kiedy spojrzałem na ikonę, nawet po ustawieniu ftype na np. calc lub charmap, ikona nie była zbyt dziwna, ustawiona na ikonę, która wyglądała jak coś, co nie było calc lub charmap, to był wscript.exe lub cscript.exe

Bez wątpienia powodem było to, że podczas ustawiania skojarzenia ikony z „open with” zmienia ikonę, a późniejsze zmiany w ftype nie. Nie obchodzi mnie ikona, ale doszedłem do wniosku, że może istniało jakieś inne utrzymujące się skojarzenie z cscript, które może się zmienić, gdy zmienię go z otwartym. Być może „otwórz za pomocą” jest nieco silniejsze / bardziej wymuszone niż ftype.

Myślę, że „open with” twierdziło, że jest też ustawione na calc, ale pomyślałem, że może nie jest poprawnie ustawione. Zmieniłem go na charmap i hej presto teraz wpisując nazwę pliku w cmd, otworzył także charmap i ftype.

Próbowałem powtórzyć ten problem, ale problem nie dotyczy ponownego wyzwalania, a ftype wydaje się działać poprawnie. Ale gdyby to się powtórzyło, wiedziałbym, że utworzę ikonę z tym rozszerzeniem i użyję „open with”, i niech to zrobi swoją rzecz i ustawi ftype, a skojarzenie powinno być wykonane poprawnie.

barlop
źródło