Search Support

Avoid support scams. We will never ask you to call or text a phone number or share personal information. Please report suspicious activity using the “Report Abuse” option.

Learn More

Spustit Firefox dávkovým souborem.

  • 3 majibu
  • 0 wana tatizo hili
  • Last reply by poljos

more options

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

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)

more options

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).

Helpful?

more options

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.

Helpful?

more options

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/

Helpful?

Uliza swali

You must log in to your account to reply to posts. Please start a new question, if you do not have an account yet.