Stránka 1 z 1
Nefunguje bat pri spuštení VDOS
Napsal: 10 srp 2021 10:12
od atari
Mám dávku ve WIN10 64bit a potřebuji, aby se dávka B.bat spustila po ukončení A.bat:
Po vykonání příkazu A.bat se B.bat nespustí.
Poznámka: A.bat spouští dosovský program (PC fand) přes VDOS.
Když zadám:
Kód: Vybrat vše
CALL c:\program\A.bat
c:\program\B.bat
tak B. bat se také nsepustí
Když zadám:
Kód: Vybrat vše
START c:\program\A.bat
c:\program\B.bat
tak B. bat se spustí, ale ihned a nečeká na ukončení A.bat
Ja vyřešit aby se B.bat spustil po ukončení A.bat.?(Podle mě problém dělá VDOS, protože v něm se DOS příkazy chovají nekorektně.)
Dodatečně přidáno po 58 vteřinách:Ve WIN7 32bit to fungovalo bez problémů. Ovšem A.bat se spouštěl normálně (nebyl použit VDOS)
Re: Nefunguje bat pri spuštení VDOS
Napsal: 10 srp 2021 10:55
od zeus
Je nejaky problem ty davky sloucit?
Jinak start /wait , ale to musis vyzkouset.
Re: Nefunguje bat pri spuštení VDOS
Napsal: 10 srp 2021 11:00
od atari
Je to problém sloučit.
Některé příkazy, když běží ten VDOS nefungují korektně. Například "timeout" nefunguje vůbec.
Příkaz wait problém neřeší, protože dávka "A.bat" někdy běží 5 minut a někdy 5 hodin, takže to nelze předem nastavit.
Dodatečně přidáno po 1 hodině 16 minutách 34 vteřinách:Tak jsem to zkusil přes vbs skript a také to nefunguje. Dávka "B.bat "se spustí dříve, než je dokončena "A.bat".
Má někdo nápad, jak to řešit?
Kód: Vybrat vše
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "C:\program\A.bat", 0, TRUE
WshShell.Run "C:\program\B.bat"
Set WshShell = Nothing
Re: Nefunguje bat pri spuštení VDOS
Napsal: 10 srp 2021 12:29
od zeus
Vsak u /wait nezadavas zadny cas
Re: Nefunguje bat pri spuštení VDOS
Napsal: 10 srp 2021 12:58
od Uziv00
Nemůže to fungovat, protože uvažuješ špatně.
A.bat něco spustí, ukončí se, vrátí nulu a tudíž se může spustit B.bat.
Ty ale nepotřebuješ návaznost na A.bat, ale na pcfand, či nějaký jiný program.
Re: Nefunguje bat pri spuštení VDOS
Napsal: 10 srp 2021 15:17
od atari
Teď u toho PC nejsem, ale v dávce A.bat jsou všechny procedury volány také příkazem CALL.
Zítra se na to podívám.
Re: Nefunguje bat pri spuštení VDOS
Napsal: 10 srp 2021 15:49
od Uziv00
To asi ano, když to na W7 fungovalo. Jenže když to ve vbs nefunguje a spustí to hned B.bat, pak A.bat musí vrátit návrat dříve, než dokončí všechny CALL.
Jedna z možností je nechat všechno "ošetřit" vbs. Tedy A.bat a B.bat přestanou existovat.¨Ovšem netuším, jak by tohle mohlo fungovat ve virtual dosu.
Jako ideální bych viděl kompletní virtuální stroj, ať už s MS-DOS, nebo s nějakou verzí woken, kde fand chodil. A na této virtuální mašině by ty baty chodily určitě.
Re: Nefunguje bat pri spuštení VDOS
Napsal: 10 srp 2021 17:27
od atari
Ve VBS to ošetřit neumím.
Mě překvapuje to, že když v A.bat je vše voláno přes CALL, tak se ukončí dříve než volaná procedura FAND.
Teď mě napadá, v bat po nějakých intervalech (3s) zjišťovat zda ještě běží proces FAND a tím to ošetřit. Není to moc elegantní řešení, ale mělo by fungovat.
Virtualizaci se chci vyhnout.
Re: Nefunguje bat pri spuštení VDOS
Napsal: 10 srp 2021 19:01
od Uziv00
Jestli ten fand spouštíš jedním batem v VDOS, tak to je právě ono. Protože v těch sedmách šel fand určitě normálně ze systému.
Správně je spustit virtuální stroj, v něm autoexec.bat, který spustí fand a po skončení zavolá B.bat. Dost dobře si nedokážu představit to přehazování batu mezi emulátorem a systémem.
Re: Nefunguje bat pri spuštení VDOS
Napsal: 10 srp 2021 22:08
od atari
Je to přesně tak. Ve WIN 7 32bit, se PC FAND spouštěl normálně.
V těch WIN 10 64bit to je právě přes ten VDOS. Ještě kouknu na ty dávky jak si to mezi sebou odkazujou.