Batch Taskabfrage und Namensverkürzung

>|Sh4d0w|<

Commander
Registriert
Jan. 2009
Beiträge
2.537
Hallo Leute,
ich schreibe gerade einen Batch, der beim starten verschiedene Programme öffnen soll..Quasi eine Abfolge verschiedener Standardprogramme nach einer Neuinstallation.

Ich weiß momentan nicht weiter wie man das im Batch deklarieren kann.
Es soll geprüft werden ob der Prozess - nennen wir ihn mal "1.exe" im Taskmanager noch vorhanden ist. Sobald das Programm fertig mit der Installation ist, ist ja die exe File nicht mehr im Taskmanager-sprich beendet. danach Danach soll das nächste Programm starten usw.

mit /wait geht das nicht, da es anscheinend nur bis Win 2000 ging und beim ausführen zu einer Fehlermeldung kommt.

Außerdem möchte ich jetzt gleich mal fragen wie das mit der Namensverkürzung des Pfades geht. Man sieht ja öfters sowas wie LOKALE~1, die Abkürzung für den Ordner Lokale Einstellungen. Das selbe würde ich gerne im Batch als Abkürzung der ständig wechselnden Ordner, da sich die letzten 4 Buchstaben des Ordners regelmäßig ändern.

Geht das überhaupt. Es gibt doch auch noch diese Windows Variablen, die man direkt über "Ausführen" aufrufen kann...wie z. B Temp, System32 ...


MfG Alex :D
 
Die mit Schlangenlinie versehenen Datei- und Ordnernamen sind DOS-kompatible 8.3 Anzeigen und keine echten Verkürzungen. Ansonsten google mal nach Batch-Programmierung, da kommt einiges zusammen.
 
wenn du es mit call ausführst bleibt die batch so lange ander stelle stehen bis der call abgearbeitet ist.

falls dir das weiterhilft ;)
 
Ich hab mal was ähnliches gebastelt ...
im Windows 2003 resource kit gibts ne sleep.exe

Mit tasklist kannst du dir mit der cmd die aktuelle taskliste anzeigen.

Ob du damit etwas lauffähiges mit batch ans laufen bekommst kann ich dir leider nicht garantieren. Ich bin damals aufgrund mangelnder Zeit auf php ausgewichen, weil mir spontan nichts vernünftiges eingefallen ist die tasklist auszulesen und eh nen xampp auf dem lapi hatte.

Ich hatte eine batch skript, das mit tasklist > c:\tasklist.txt ne ascii datei erstellt und mit sleep.exe 1 Sekunde bis zum nächsten aufuf gewartet hat.
Daneben lief ein Browserfenster, dass mit php die tasklist.txt eingelesen hat und bei bedarf mit shell_exec() den Task neu gestartet hat. Die php datei auch über javascript und window.setTimeout jede Sekunde neu aufrufen lassen.

Sicherlich nicht die tollste art und weise, aber es hat mir gute Dienste erwiesen und war in ein paar minuten umgesetzt ... Immer wieder enttäuschend wie wenig die ms batch bietet. Von der komplexität der shellscripte könnte sich ms ruhig mal was abschneiden - wobei mittlerweile gibts ja auch ne powershell :freak:

edit:
windows variablen: geb in der cmd mal set ein ;) dann siehst die standardvariablen. auf diese kannst natürlich aus batch zugreifen. Aus der cmd z.b. mit echo %TMP% aus batch brauchst glaub zwei %% ... bin mir aber nicht sicher. findest aber sicherlich bei google
 
Zuletzt bearbeitet:
mit call muss ich doch Batch für Batch aufrufen..ich wollte eher alles in einem reinschreiben..ansonsten bleibt mir nichts anderes übrig die call funktion zu nehmen.

Zur Namensverkürzung: Ich hatte mal irgendwo gelesen dass man bei so einer Verkürzung aufpassen muss, dass man einen Ordner sinnvoll deklariert. Bei PROGRA~1, kann es sich ja um den Ordner "Programme" und "Program Files" handeln. Das war mal sone Art FAQ, worauf man aufpassen muss. Also bin ich davon ausgegangen es geht wirklich.

@fry2k Mit einer anderen Programmiersprache wie PHP möchte ich nicht anfangen. Es sollte schon beim Batch bleiben :D. Diese sleep.exe die du benutzt hast ist bestimmt sowas wie die Thread.Sleep() Funktion in C# oder?
 
Zurück
Oben