URL: https://www.overclockers.at/coding-stuff/frage_zu_einer_batchdatei_115600/page_1 - zur Vollversion wechseln!
Hi!
Ich hab mir eine Batchdatei geschrieben die wie folgt ausschaut:
@ECHO OFF
:M_VB_NET2003
REM ------------------------------------------
ECHO Starting VS_.NET 2003 Install Please be patient...
CALL C:\Temp\setup\setup.exe /unattendfile \\server\share\Allgemein\MSDN\TEST\Unattend_USER.ini
ECHO DONE!
REM ------------------------------------------
:END
:UNZIP_MSDN
REM ------------------------------------------
ECHO Unzipping MSDN Setup Files for USER, please wait...
Start /W C:\Progra~1\Powerarchiver\Powerarc.exe -e C:\net\net.zip C:\Temp\test
IF ERRORLEVEL 0 goto MSDN
REM ------------------------------------------
:MSDN
REM ------------------------------------------
ECHO Starting MSDN Library Install...
Start /W C:\temp\MSDN\setup.exe /q ADDLOCAL=ALL
REM ------------------------------------------
:END
ECHO Visual Studio dot NET 2003 Install successfully completed...
EXIT
Funktioniert auch schön nur gibts ein gröberes Problem und zwar:
Die Batchdatei startet das Unattended Setup von Visual Studio Net und springt gleich zum unzip von MSDN weiter obwohl ich eigentlich zuerst das Setup fertig ausführen will und dann erst mit dem dekomprimieren anfangen will.
Die Schalter Start /wait oder CALL funktionieren zwar jedoch läuft die Batch weiter obwohl sie ja warten sollte bis Setup fertig ist...
Weiß echt nimma weiter wie ich das anstellen soll...
tia
haemma
mit dem befehl "pause" wartets bis du ne taste gedrückt hast
das wär die holzhammer methode wie du die batch zum halten bringst
hm, wenn ich das richtig seh, dann willst warten bis die setup.exe fertig ist und dann willst powerarc starten oder?
wenn ja, dann solltest das setup mittels start /w starten und nicht das powerarc.
Greetz
@cows othan: thx aber ich will das komplett automatisch ablaufen lassen, pause erfordert ja wieder eine benutzereingabe.
@grisu: thx, gleich mal ausprobieren
habs ausprobiert, das geht nicht, er fängt trotzdem zum dekomprimieren an..
Befehl sieht jetzt so aus:
M_VB_NET2003
REM ------------------------------------------
ECHO Starting VS_.NET 2003 Install Please be patient...
START /w C:\Temp\setup\setup.exe /unattendfile \\server\share\Allgemein\MSDN\TEST\Unattend_USER.ini
ECHO DONE!
REM ------------------------------------------
:END
:UNZIP_MSDN
REM ------------------------------------------
ECHO Unzipping MSDN Setup Files for USER, please wait...
Start C:\Progra~1\Powerarchiver\Powerarc.exe -e C:\net\net.zip C:\Temp\test
IF ERRORLEVEL 0 goto MSDN
REM ------------------------------------------
EDIT: Auch ohne dem START Befehl funktioniert es nicht.
Zitat von haemmaSTART /w C:\Temp\setup\setup.exe /unattendfile \\server\share\Allgemein\MSDN\TEST\Unattend_USER.ini
hm, hab das jetzt eingebaut nur macht er mir das setup auf und dann aber die batchdatei zu. also ich seh nicht was er weitermacht...
genügt es wenn man nur /w schreibt, laut windows hilfe müsste es /wait heißen. Vielleicht liegts daran
ja, /w bedeutet das es in einem neuen Window gestartet wird
/wait bedeutet dass die batch warten soll bis die (in meinem fall) setup datei fertig ist.
hm, schwer zu sagen, woran das Problem jetzt liegen könnte. ist recht kompliziert mit dem Start befehl.
edit:/ dann solltest das w villeicht doch mal durch ein wait ersetzen, oder?
ja, ich arbeit schon den 3ten tag dran und des will einfach nicht so funktionieren wie ich das will....
alles schon probiert, auch mit wait tut es einfach weiter..
hast eigentlich ein klass. .bat-file geschreiben oder ein cmd-file?
ausserdem, für was sind die ganzen sprungmarken, es kommt ja nur ein goto Befehl vor, mit dem dann tatsächlich gesprungen wird.
.bat file
ja, die sollt ich noch rausnehmen.... war nur der erstentwurf... und ich wollt mich erstmal drauf konzentrieren dass das alles läuft und dann no die schönheitsfehler korrigieren...
Habe diese Vorgangsweise mit call gerade getestet und scheint zu funktionieren.
Habe es getestet indem ich der 1. batch ein simples echo rausgegeben hab, danach ein call calc und danach wiederum eine Ausgabe mit echo. die 2. Ausgabe erscheint erst wenn calc beendet wurde.
/edit: musste gerade feststellen, dass er nur wartet, wenn man eine 16 bit Appl. aufruft, bei einer 32 bit Appl. wird die bat bzw cmd sofort weiterverarbeitet.
da müsstest schon den scripting host verwenden, damit sollte es dann aber klappen
LG
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2026