Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Automatické spuštění souboru .bat po vypnutí určité hry

Ahoj borci,

chci se zeptat, mám vytvořený dávkový soubor .bat, který mi zálohuje save ze hry. V plánovači úloh jsem si nastavil aby se mi tento dávkový soubor spustil každý den ve 23:00 hodin. Problém nastává, že když ještě v tuto dobu hru hraji, spustí se dávkový soubor a hru mi shodí z fullscreenu do okna. Napadlo mě, jestli by šlo nějak udělat aby se dávkový soubor spustil automaticky po vypnutí hry, popř. Steamu, je to možné ? Pokud ano, jak tohoto docílit ?

Díky za případné rady.

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
Máš dvě varianty: 1. steamovou aplikaci spustit z BAT souboru a po jejím ukončení normálně dokončit…
touchwood 14.01.2015 18:16
touchwood
Moc díky touchwoode. Teoreticky to chápu, ale prakticky už to bude horší, moc těmto věcem nerozumím,…
Hanyse.k 14.01.2015 18:37
Hanyse.k
proč myslíš, že jsem ti tam dal ty linky a napsal, že to je pouze symbolický zápis? tasklist máš bl…
touchwood 14.01.2015 20:48
touchwood
Já na ně koukal ale přiznám se, že na ten druhý jen letmo, s angličtinou nekamarádím a bylo tam toho…
Hanyse.k 14.01.2015 21:05
Hanyse.k
ještě ten ping můžeš taky přesměrovat do NULu (na konec přidat >NUL), aby to nevypisovalo do konzole…
touchwood 14.01.2015 21:55
touchwood
Tak jsem to tam přidal, dal jsem tam mezeru, je to správně, nebo bez mezery ? ping -n 300 127.0.0.1…
Hanyse.k 14.01.2015 22:41
Hanyse.k
zásadně s mezerou..
touchwood 15.01.2015 08:50
touchwood
Díky touchwoode. Nějaká zrada. BATku jsem strčil do plánovače úloh, nastavil na každý den na 23:00 h…
Hanyse.k 17.01.2015 23:21
Hanyse.k
if errorlevel = 0 goto START errorlevel 0 tuším nejde testovat. v porovnání jsou dvě rovnítka, u er…
lední brtník 17.01.2015 23:41
lední brtník
Díky Brtníku, BATka funguje, super. Přidal jsem tedy zpět @echo off. Ale pořád zůstává jeden problém…
Hanyse.k 18.01.2015 12:15
Hanyse.k
pak to chce spustit na pozadi, jestli tam mas nejakou takovou volbu
gilhad 18.01.2015 12:37
gilhad
To je právě ono, chce to spustit na pozadí, v plánovači jsem tuto možnost nenašel, tak nevím jak. Za…
Hanyse.k 18.01.2015 15:26
Hanyse.k
Já nevím, proč to děláš všechno tak složitě. Dole jsem ti napsal jasné: onexit.exe GRIDAutosport.e…
Flash_Gordon 18.01.2015 15:33
Flash_Gordon
Já těmto věcem absolutně nerozumím. Abych řekl pravdu, tak jsem se na tu tvou radu díval, potom jsem…
Hanyse.k 18.01.2015 15:48
Hanyse.k
K tomu nic na netu nenajdeš. To je špešl řešení pro pc.poranda.net. Prostě zadáš onexit.exe "GRIDAu…
Flash_Gordon 18.01.2015 16:03
Flash_Gordon
Díky, tak se mi to podařilo rozchodit podle mých představ. nový
Hanyse.k 18.01.2015 22:19
Hanyse.k
Chci moc poděkovat Touchwoodovi, Brtníkovi a Squad Leaderovi za pomoc a rady. Prosím o označení tém… nový
Hanyse.k 18.01.2015 22:25
Hanyse.k
Touchwood i Brtník radí dobře ;-). Ale uživatelsky nejjednodušší je prográmek. Už jen tím, že se: -… poslední
Flash_Gordon 19.01.2015 00:17
Flash_Gordon

Máš dvě varianty:

1. steamovou aplikaci spustit z BAT souboru a po jejím ukončení normálně dokončit BAT a zazálohovat
2. ponechat BAT jako naplánovanou úlohu a problém vyřešit smyčkou ve které se bude 300x pingat loopback (tj. adresa 127.0.0.1) (to je pauza cca 5 minut) a následně se otestuje, zda běží steam.exe. Pokud ne, smyčka se ukončí a provede se záloha dat a ukončení BAT skriptu.

edit: symbolicky je to zapsáno takto:

:START
ping -n 300 127.0.0.1
tasklist | find steam.exe
if errorlevel = 0 goto START
copy file.cfg backup.cfg
 

Moc díky touchwoode. Teoreticky to chápu, ale prakticky už to bude horší, moc těmto věcem nerozumím, nebo spíše vůbec. Zamlouvá se mi ta varianta č.2.

Tohle je můj BAT se zálohováním savu:

@echo off

set savegamepath=C:\Program Files (x86)\Steam\userdata\29162677\255220\remote\*.*
set destinationfolder=D:\Zaloha\GRIDAutosportSAVE

For /f "tokens=2-4 delims=/. " %%a in ('date /t') do (set mydate=%%c-%%b-%%a)
For /f "tokens=1-2 delims=/:" %%a in ("%TIME%") do (set mytime=%%a-%%b)

xcopy "%savegamepath%" "%destinationfolder%\%mydate%_%mytime%\" /Y

Nevím jestli to chápu dobře, ale upravím svůj původní BAT s tvým, takto ?

@echo off

:START
ping -n 300 127.0.0.1
tasklist | find steam.exe
if errorlevel = 0 goto START

set savegamepath=C:\Program Files (x86)\Steam\userdata\29162677\255220\remote\*.*
set destinationfolder=D:\Zaloha\GRIDAutosportSAVE

For /f "tokens=2-4 delims=/. " %%a in ('date /t') do (set mydate=%%c-%%b-%%a)
For /f "tokens=1-2 delims=/:" %%a in ("%TIME%") do (set mytime=%%a-%%b)

xcopy "%savegamepath%" "%destinationfolder%\%mydate%_%mytime%\" /Y

A tento BAT nechám v plánovači úloh, je to tak správně, nebo jsem to nepochopil vůbec ?

Já na ně koukal ale přiznám se, že na ten druhý jen letmo, s angličtinou nekamarádím a bylo tam toho na mě moc. Já myslel (vím, že myslet je h*vno vědět), že symbolický zápis je v poslední řádku. Omlouvám se a moc díky za opravu. Jdu to vyzkoušet.

Díky touchwoode. Nějaká zrada. BATku jsem strčil do plánovače úloh, nastavil na každý den na 23:00 hodin. Hrál jsem hru, v plánovaný čas, tedy ve 23:00 hodin vyskočilo okno, viz screen níže.

http://www.sdilej.eu/pics/4533e413b3b33b546c75d89c 1e731181.png

Okno zůstane "viset", záloha save se neprovede, čekal jsem asi 15 minut, neví někdo kde by mohl být problém ?

Pro jistotu ještě přikládám BAT

@echo off

:START
ping -n 300 127.0.0.1 >NUL
tasklist /FI "IMAGENAME eq steam.exe" 2>NUL | find /I /N "steam.exe">NUL
if errorlevel = 0 goto START

set savegamepath=C:\Program Files (x86)\Steam\userdata\29162677\255220\remote\*.*
set destinationfolder=D:\Zaloha\GRIDAutosportSAVE

For /f "tokens=2-4 delims=/. " %%a in ('date /t') do (set mydate=%%c-%%b-%%a)
For /f "tokens=1-2 delims=/:" %%a in ("%TIME%") do (set mytime=%%a-%%b)

xcopy "%savegamepath%" "%destinationfolder%\%mydate%_%mytime%\" /Y

Díky Brtníku, BATka funguje, super. Přidal jsem tedy zpět @echo off. Ale pořád zůstává jeden problém, v nastaveném čase v plánovači se BATka spustí ale při tom vyskočí prázdné okno, co jsem popisoval výše a toto okno mi hru shodí z fullscreenu do okna, jde to nějak prosím vyřešit ? Jak ?

To je právě ono, chce to spustit na pozadí, v plánovači jsem tuto možnost nenašel, tak nevím jak. Zatím jsem našel jen toto: http://www.jurica.info/2012/04/jak-spustit-skript- neviditelne-zlohujeme-na-pozad/

Když jsem podle toho vytvořil skript:

Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.run "%comspec% /c D:\Zaloha\GRIDAutosportSAVE\SAVE-GRID.bat",0 Set WshShell = Nothing

tak to v plánovaném čase vyhodí chybu, viz. screen: http://www.sdilej.eu/pics/2b27cc637f88f669dcb90159 eb677563.png

Absolutně se v tom nevyznám, všechno to je pro mě španělská vesnice.

Já těmto věcem absolutně nerozumím. Abych řekl pravdu, tak jsem se na tu tvou radu díval, potom jsem k tomu ještě něco hledal na netu, ale nic jsem nenašel nebo nevím co pořádně hledat. Stáhl jsem ten program onexit.exe, strčil ho do složky s hrou ale pak už nevím co dál. Nevím jestli teď to chápu, mám vytvořit soubor BAT a jen tam vložit ten řádek co jsi napsal tučně ? Potom už bude stačit jen spustit hru tou BATkou ?

K tomu nic na netu nenajdeš. To je špešl řešení pro pc.poranda.net.

Prostě zadáš onexit.exe "GRIDAutosport.exe" "D:\Zaloha\GRIDAutosportSAVE\SAVE-GRID.bat"

Funguje to jednoduše:
onexit.exe "program_spustit" "D:\Zaloha\GRIDAutosportSAVE\SAVE-GRID.bat"

namísto "program_spustit" může být i zástupce ("hra.lnk")

Není k tomu co vymýšlet. To jsou základní uživatelské znalosti.

//editace

PROSTĚ ONEXIT.EXE "UPLNA CESTA KE HŘE.EXE či HRA.LNK" "UPLNA CESTA K ZALOZE.BAT"

Zpět do poradny Odpovědět na původní otázku Nahoru