
Spustit Firefox dávkovým souborem.
Potřebuji spouštět Firefox v dávkovém souboru .BAT.
Samotné spuštění není problém, ale Firefox se spustí a okamžitě BAT opustí a už se tam nevrátí.
Jak zajistit, aby Firefox BAT neopouštěl a aby po jeho skončení BAT pokračoval? Jiné programy tohle nedělají.
Příklad BAT:
@echo off
set zalozky=h:\Mozilla\Profiles\zalozky\ set prac_adr=h:\Mozilla\Profiles\6mydhc7d.default\
copy %zalozky%places.sqlite %prac_adr%places.sqlite
"C:\Program Files\Mozilla Firefox\firefox.exe"
copy %prac_adr%places.sqlite %zalozky%places.sqlite
All Replies (3)
Použij příkaz start /wait. Ten zajistí, že dávkový soubor počká, dokud se spuštěný program neukončí.
Tvůj BAT by vypadal takto:
@echo off set zalozky=h:\Mozilla\Profiles\zalozky\ set prac_adr=h:\Mozilla\Profiles\6mydhc7d.default\ copy "%zalozky%places.sqlite" "%prac_adr%places.sqlite" start /wait "" "C:\Program Files\Mozilla Firefox\firefox.exe" copy "%prac_adr%places.sqlite" "%zalozky%places.sqlite"
Poznámky: start /wait spustí aplikaci a čeká, až se zavře. Ty dvě uvozovky "" hned za start /wait jsou název okna (povinný argument, když cesta k programu je v uvozovkách).
Ansame, děkuji. Ale tohle už jsem zkoušel. Taky jsem zkoušel "call", ale ten je pro volání jiného BATu. Nic nepomohlo.
Mám WIN 11/64. Jinde, doma, na WIN 7/32 se tohle neděje. Zdá se, že 64 bitový Firefox.exe asi ještě spouští jiný .exe, a tím z BATu vyklouzne. Ale to je jen domněnka.
Má někdo nějaký jiný návrh, jak zajistit, aby BAT počkal na skončení Firefoxu? Děkuji.
Moje AI radí toto (ale zdejší editor umazává některé znaky - viz. tučně vyznačené): Bezpečnější varianta spočívá v tom, že BAT:
1. Nejprve zkopíruje `places.sqlite` do pracovního profilu. 2. Spustí Firefox a počká, až opravdu skončí. 3. Přesně zkontroluje, že Firefox už neběží, než zpětně zkopíruje `places.sqlite`.
Tady je kompletní BAT soubor:
@echo off setlocal
REM Cesty k profilům set zalozky=h:\Mozilla\Profiles\zalozky\ set prac_adr=h:\Mozilla\Profiles\6mydhc7d.default\
REM Záloha aktuálního places.sqlite copy /y "%zalozky%places.sqlite" "%prac_adr%places.sqlite"
REM Spustí Firefox a počká, než skončí start "" "C:\Program Files\Mozilla Firefox\firefox.exe"
REM Čekání, dokud Firefox běží --- chybí dvojtečky u ::cekani
- cekani
timeout /t 2 >nul tasklist /fi "imagename eq firefox.exe" | find /i "firefox.exe" >nul if %errorlevel%==0 goto cekani
REM Firefox skončil, kopíruj zpět places.sqlite copy /y "%prac_adr%places.sqlite" "%zalozky%places.sqlite"
echo Hotovo. endlocal pause
🔹 Vysvětlení bezpečnostních prvků:
- `tasklist` kontroluje, jestli Firefox stále běží. Pokud ano, BAT čeká 2 sekundy a zkontroluje znovu.
- `copy /y` přepisuje existující soubory bez dotazu.
- `timeout /t 2 >nul` – čeká 2 sekundy, ale nic nevypisuje.
- Tímto způsobem se minimalizuje riziko, že se `places.sqlite` zkopíruje zpět, zatímco Firefox stále běží a zapisuje do databáze.
Můžu ti ještě připravit **verzi, která vytvoří zálohu původního `places.sqlite`** před začátkem, pro úplnou bezpečnost dat. Chceš ji? --- Můžeš si s tím pohrát i sám: https://chatgpt.com/