
Jak provést asociace přípon dávkovým souborem?
Jak provést asociace přípon dávkovým souborem?
Např. spustím *.bat a provede se asociace *.pdf do pdfprohlizec.exe. Spustím soubor.pdf a ten se otevře v pdfprohlizec.exe.
Další příklad - spustím *.bat a provede se asociace *.txt do aplikace txtprohlizec.exe. Kliknu na soubor.txt a ten se otevře v txtprohlizec.exe.
Zacíleno na Windows XP až Windows 10.
Máš v tom nejaký guláš. Rozlišuj dávky, skripty *.bat a *.cmd pre W10 ak máš x64 bit systém.
Pre jednorazovú zmenu asociácie pomocou spusteného okna cmd.exe pre PDF
(ako si zrejme v dopyte žiadal):
ASSOC .PDF=Acrobat.exe
FTYPE Acrobat.exe="C:\Program Files (x86)\Adobe\Acrobat 11.0\Acrobat\Acrobat.exe" "%%1"
Pre uložený skript *.cmd v Notepad.exe začína hlavičkou:
@echo off
--------------------------------
Pre inštalačné *.reg súbory k trvalej zmene asociácie spracované v Notepad.exe vypadá vzor takto:
https://gist.github.com/credomane/9ac7be58f562eb9ba227
Hotové predvoľby asociácií *.reg inštalačných súborov k trvalej zmene:
http://www.winhelponline.com/blog/file-association-fixes-windows-10/
Prioritně mi šlo o dávku v *.bat, to zmiňuji v zadání dotazu.
Včera jsem testoval/spouštěl jako správce/admin v *.bat níže uvedený kód, ale nebyl jsem úspěšný.
Problém je jinde. Nikdo však neví kde. Od té nesmyslné včerejší přestřelky jsem začal tušit, že všichni nevíme nějakou základní informaci, která je nutná pro rozběhutí dávky. Možná to někdo ví, asi tuším kdo, ale úplnou náhodou to sem nenapsal. Taky se pozastavuju nad tím, že by pokud dva dělají totéž na stejné platformě, tak je výsledek rozdílný. Vím, že radili chlapi zkušení a letití, proto mi hlava nebere proč se nedostavil úspěch.
Můžete mi sem napsat vaši verzi OS/bit?
Testováno na x64 Microsoft Windows [Version 10.0.10586]
-------------------------------------
@echo off
cd %systemroot%\system32
call :admin
reg.exe add "hkcr\txtfile\shell\open\command" /ve /t reg_sz /d "c:\windows\notepad.exe \"%%1\"" /f
exit
:admin
reg.exe query "hku\s-1-5-19\environment"
if not %errorlevel% equ 0 (
cls & echo Jsou nutna admin prava ...
pause & exit
)
cls
goto:eof
Máš pravdu, že to nefunguje u všech přípon/typů souborů. Některé typy jsou zřejmě už přednastavené z dřívějška, v držení nějaké jiné aplikace. Windows to mají rozeseto na X nesmyslných místech, není to na jednom místě, kde by to šlo jednoznačně změnit a fungovalo vše. například mi po aplikaci stejné dávky s assoc a s ftype (asociováno do stejného prohlížeče obrázků) u png fungovalo, ale u bmp už ne, u jp2 také ne, u ppm také ne... bylo nutno to ručně a jednotlivě donastavit po vyskočení okna "kterou aplikací to mám otevřít"... se zaškrtnutím "nafurt".
Ale mistři světa výše to zřejmě ani netuší, a tak si myslí, že je člověk blbec.
A na prvotní problém, že aplikace XYZ není v nabídce Nastavení W10 "Výchozí aplikace/Nastavit výchozí možnosti podle aplikace", jelikož se tam aplikace nevyskytuje, a jak ji tam lze doplnit, na to nereagoval nikdo.
Ještě při použití příkazového řádku jako správce, rozdílnost chování se stejným kódem:
C:\Windows\system32>c:\Users\-\Desktop\asociuj.bat
C:\Windows\system32>ftype txtfile="c:\Windows\notepad.exe" "%1"
txtfile="c:\Windows\notepad.exe" "%1"
C:\Windows\system32>assoc .txt=txtfile
.txt=txtfile
C:\Windows\system32>ftype txtfile="c:\Windows\notepad.exe" "%%1"
txtfile="c:\Windows\notepad.exe" "%%1"
C:\Windows\system32>assoc .txt=txtfile
.txt=txtfile
C:\Windows\system32>
Zábavné čtení.
Ještě bych rád autora dotazu upozornil, že je velmi zpozdilé používat profil jakéhokoli uživatele k ukládání aplikací, které se mají asociovat.
Dále je vhodné se kouknout do registrů, zda ta změna proběhla, a zda proběhla na úrovni systému (HKLM) nebo uživatele (HKCU), výsledek spojení těchto dvou registrů je vidět v HKCR. Od dob userprofile2.0 to totiž je rozděleno.
tipuju prave, ze z batky to bude ve w10 profil hkcu, kdezto ms si drzi asociaci na hkcr.
je to jedno, ja jdu pokud mozno primym zapisem do registru, i kdyz je to tak primitivni (ale ucinne).
Ja si zas myslim, ze to po 4 letech uz vyresil...
On to sice původně vytáhl 2xs 3.12., ale je zbytečné to po letech dál rozvíjet.