Dotaz k tvorbě dávkových souborů

Všechny ostatní programy, které nemají samostatnou sekci

Moderátor: Moderátoři Živě.cz

Odeslat příspěvekod mikedge 12. 3. 2009 09:44

Chtěl bych vytvořit dávkový soubor, který mi najednou spustí všechby programy (typicky 5), se kterými souběžně pracuji, abych je nemusel spouštět manuálně každý zvlášť. Když ale zapíšu do BATu porstupně odkazy ke všem programům "C:\Program Files\..." a spustím ho, dávka se spustí v příkazovém řádku a spustí se první program v pořadí, přičmž se provádění dávky zastaví, dokud ten první spuštěný program neukončím - až potom se spustí další, který dávku zase zastaví až do svého ukončení atd. Jak to udělat, aby se všechny programy spustily naráz? Předem děkuji za odpověď!
mikedge
Junior

Odeslat příspěvekod Schumi21 12. 3. 2009 10:12

co tak spravit si 5 suborov CMD a spravit zastupcu kazdeho do ponuky START - > Pri spustení ? spustia sa ti vsetky naraz.
Toshiba U400-18M (4GB RAM, Vista HP Sk SP2)
Schumi21
Junior
Uživatelský avatar

Odeslat příspěvekod vladimir 12. 3. 2009 10:32

Použij v dávkovém souboru přikaz start:

Kód: Vybrat vše
start program1.exe
start program2.exe
start program3.exe
start program4.exe
start program5.exe


spuštění následujícího programu pak nečeká na konec předchozího.
vladimir
Expert
Uživatelský avatar

Odeslat příspěvekod iv93 12. 3. 2009 11:04

Kolegové ti neřekli všechno :-( Patrně narazíš na problém s mezerami v cestách, pak musíš použít zkrácené názvy, například:

Skutečná cesta k programu je třeba:
Kód: Vybrat vše
start C:\Program Files\nejaky dlouhy nazev\program1.exe

ty musíš napsat tohle:
Kód: Vybrat vše
start C:\Progra~1\nejaky~1\program1.exe
Malým dětem a blbcům počítače do rukou nepatří.®
iv93
Junior
Uživatelský avatar

Odeslat příspěvekod vladimir 12. 3. 2009 11:11

iv93 píše:
Kód: Vybrat vše
start C:\Progra~1\nejaky~1\program1.exe

Jestli je to v nějaké novější verzi windows (XP), stačí úvozovky kvůli mezerám:
Kód: Vybrat vše
start "C:\Program Files\nejaky dlouhy nazev\program1.exe"

EDIT: Uznávám chybu, příkaz start takto NEFUNGUJE.
Naposledy upravil vladimir dne 12. 3. 2009 11:45, celkově upraveno 1
vladimir
Expert
Uživatelský avatar

Odeslat příspěvekod iv93 12. 3. 2009 11:13

vladimir píše:Jestli je to v nějaké novější verzi windows (XP), stačí úvozovky kvůli mezerám

Jak kde. Na mých win xp u těchto příkazů nepomůžou :-( zato zkrácený zápis cest bude fungovat na všech woknech.
Malým dětem a blbcům počítače do rukou nepatří.®
iv93
Junior
Uživatelský avatar

Odeslat příspěvekod vladimir 12. 3. 2009 11:28

Přiznám se, že já jsem zvyklý startovat procesy v tom adresáři, kde jsou nainstalované Zkrácený zápis jsem v životě nepoužil. Používám XP home a prof a W2K:

Kód: Vybrat vše
c:
cd "c:\Program Files\cesta\"
start program.exe

Tak mi to fungje.

Edit: Iv93: máš 100procentní pravdu, zrovna jsem to testoval. Pokud je použitý příkaz START, tak pokud se nestartuje přímo z adresáře, kde je program nainstalovaný, je cestu nutné napsat zkráceně s vlnovkami.

Omlouvám se.
vladimir
Expert
Uživatelský avatar

Odeslat příspěvekod Pytlík 12. 3. 2009 13:24

Ohledně těch dlouhých jmen, resp. úvozovek: Pokud je nutno příkaz ke spuštění programu uzavřít do úvozovek, potom je naprosto nezbytné tomuto příkazu předřadit něco rovněž uzavřeného do úvozovek (stačí i pár úvozovek bez textu). Příkaz start totiž bere to v prvních úvozovkách jako titulek okna a až teprve to v tom druhém páru jako nějaký další parametr. Příkaz start vypadá tedy takto:

start "" "C:\Program Files\program.exe"

nebo, chcete-li mit v záhlaví okna nápis, dejme tomu, Okno, tak vypadá takto:

start "Okno" "C:\Program Files\program.exe"
Pytlík
Pokročilý
Uživatelský avatar

Odeslat příspěvekod aberez11 12. 3. 2009 21:17

Nieco podobne sa uz riesilo tu viewtopic.php?f=922&t=1039810&p=5547841&hilit=davkovy&sid=58c661a81589d21a1a624ff204625ea9#p5547841d a padol tam dobry post ze je lepsie to spravit ako skript.

JRD tam pisal takyto svoj skript:
Kód: Vybrat vše
/* Spuštění programu od JRD*/
/* Text uložit jako start.js */

var vbOKCancel = 1;
var vbOK = 6;
var vbQuestion = 32;
var vbCancel = 2;
var vstup;
var Message = "Spustit program ?";
var Title = "Start";
var WshShell = WScript.CreateObject("WScript.Shell");

vstup = WshShell.Popup(Message,0,Title,vbOKCancel + vbQuestion);


if (vstup == vbOK)
{
oShell = WScript.CreateObject( "WScript.Shell" );
WScript.Echo ("Start programu");
oShell.Run( "C:/Program Files/program1.exe" );
oShell.Run( "C:/Program Files/program2.exe" ); /*sem nahadzes tie svoje programy*/
}
else
{
WScript.Echo ("Program se nespustí");
}

WScript.Echo( "Hotovo" );
dedukcia: "Tí čo s tým nemajú problémy, s tým nemajú až také problémy. Ale tí čo s tým problémy majú, s tým majú problémy.." (prednasajuci vysvetluje studentom ako sa veci maju)
aberez11
Junior
Uživatelský avatar

Odeslat příspěvekod Dreamer 15. 3. 2009 17:51

Mozno budem OT, mozno je dalsi program na toto podla niekoho zbytocny, ale riesenie tu zatial nie je a mozno ten program dokaze aj nieco naviac, co sa bude hodit. Vie okrem spustenia viac programov naraz jedinou kl. skratkou, cez menu tray ikony, ikony na ploche a dokonca aj mysou skratkou a inak napr. zmenit tapetu, hlasitost, rozlisenie, takze si mozes nastavit akoby rozne pracovne rezimy. Ked chces vyskusaj, je zadarmo, v Cestine, neinstaluje sa a ma len 160kB - HotkeyP.

http://petr.lastovicka.sweb.cz/ostatni.html

Este ma napadlo ze sa ti mozu hodit aj rozne makra, napr. aj vkladanie textu kl. skratkami, ak nieco pouzivas casto, napr. podpis, neviem ake programy pouzivas, ale myslim ze by si tam nasiel mnoho funkcii ktore ti ulachcia pracu. ;-)

Spat k teme, myslim ze toto by mohlo fungovat, bat subor s tymto obsahom:

Kód: Vybrat vše
start /D"D:\Programy\Nazov1\" Nazov1.exe "%1"
start /D"D:\Programy\Nazov2\" Nazov2.exe "%1"
Dreamer
Dreamer
Junior
Uživatelský avatar

Odeslat příspěvekod pepak 16. 3. 2009 07:26

Úplně by stačilo použít to, co zcela správně napsal Pytlík.
pepak
Junior


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 0 návštevníků