Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

BATCH-Dateien

Empfohlene Antworten

Veröffentlicht

Hi zum 2. Mal!

Sorry, aber ich such mir noch die Finger wund und hoffe es kann mir jemand helfen!

Ich möchte mit JAVA gerne eine Batch-Datei ausführen! Wie geht das?

Also soweit bin ich schon

String cmd = "cmd /c C:\\Temp\\test.bat"

Process p = Runtime.getRuntime().exec(cmd)

Gut und schön, aber er führt die bat nicht aus!? Warum nicht? Bin langsam echt daran am verzeifeln. Andere PGMs wie Rechner oder Paint kann ich damit öffnen, auch Perlskripte kann ich ohne Probs damit starten, aber KEINE BAT.... *grumme*

Ich bitte um eure Hilfe.

MfG

Vossi

Moin,

bist du sicher das er den Batch nicht ausführt?

Verwende ansonsten mal die Methode waitFor() vom Process-Objekt, um auf das Batchende zu warten...

Gruß, Peter

Danke für deine Antwort, hab das gerade ausprobiert und leider auch ohne Erfolg. Ich bin mir ganz sicher, dass er die bat nicht ausführt, da ich dort ein mkdir eingebaut habe und er es nicht ausführt. Bei dem waitfor() bleibt er stehen und wartet eben auf die Beendigung, aber es sieht aus wie eine Endlosschleife und beendet sich net.

Wenn du eine Bat ausführst wird kein DOS-Fenster angezeigt. D.h. wenn in der Bat steht:

z.B.

net name

dann bekommst du davon in der Tat nichts zurück.

Um das ergebniss zu sehen musst du den entprechenden Stream vom Process auslesen. Da steht dann genau das drin was normalerweise in der DOS Box steht.

Was soll denn deine Batch machen?

Danke für die Anmerkung, aber das habe ich schon gewusst... und es brachte leider auch nichts. Ich will die DOS-Box ja nicht einmal sehen.

In meiner test.bat will ich einfach ein Verzeichnis mit MKDIR anlegen und das passiert nicht, bzw. nur dann wenn ich die bat selber aufrufe.

Ich will selber rein gar nichts mit einer bat-Datei machen. Nur hier bei uns in der Firma sind wohl noch einige Altlasten, die darüber gestartet werden und ich versuche jetzt irgendwie diese über JAVA zu starten. Nur ich kann einfach keine bat starten.

Ich bin schon mehrere Tage daran am verzeifeln. Andere Applikationen (notepad, calc etc.) und Skripte aus Perl lassen sich wunderbar starten nur eben keine *.bat!!!!

Hm. Bei mir klappt's.

Hier der Java-Code:


Process process = null;

try {

  process = Runtime.getRuntime().exec("cmd /c C:\\test.bat");

}

catch (IOException e) {

  e.printStackTrace();

}

und die Batch:

@echo off

mkdir C:\test

Hey du bist richtig gut...

jetzt klappt es mehr oder weniger! Bei mir lag es wohl an IOException (hatte nur Exception verwendet!)

Echt vielen Dank!

Sag mal, kannst du mir auch verraten, wie ich unter JAVA das Verzeichnis wechseln kann?

C:

cd Temp

mkdir tt

das macht JAVA nicht, sonder bleibt dann unter C:\Windows!

mkdir C:\Temp\tt

dann geht das...?? kann man das auch anders lösen? Nur so rein Interesse halber?!

Runtime.exec arbeitet immer auf dem angegebenen Verzeichnis. Oder dem Standardverzeichnis, falls keines angegeben ist. D. h. daß bei 3 aufeinander folgenden Aufrufen das Verzeichnis immer wieder zurückgesetzt wird.

Evtl. kannst Du statt 3 Aufrufen einen schreiben, wenn die Konsole das unterstützt.

Ansonsten klappt es wohl nur dann, wenn die Befehle in einer Batch stehen und Du diese aufrufst.

Evtl. kann mir jemand helfen. Ich habe ein Programm in einer .jar-Datei und eine Batch-Datei die java anweist, eine bestimmte Klasse darin aufzurufen.

Das funktioniert allerdings nur solange man nicht über UNC-Pfade geht, also die Batch aufruft, wenn sie im Netzwerk liegt. Sie muß dann erst auf die Platte kopiert werden.

Weiß jemand, ob und wie man eine .jar im Netzwerk ausführt?

Bei deiner Frage muss ich leider passen.. Sorry...

Das Problem was wohl vorherrscht, ist wohl, dass JAVA als Standardpfad C:\WINDOWS hat und dort alles ausführt, wie kann man das ändern... So ist ja nicht sicher gestellt, dass jeder befehl in der bat funzt??

Egal... ist nicht weiter tragisch...

es werden halt immer nur absolute Pfade in der bat angegeben und dann läuft das auch so!

VIELEN DANK AN ALLE, die mir geholfen haben! :uli

Das Problem was wohl vorherrscht, ist wohl, dass JAVA als Standardpfad C:\WINDOWS hat und dort alles ausführt, wie kann man das ändern...

Ein Blick in die Java-Referenz offenbart:

public Process exec(String[] cmdarray, String[] envp, File dir) throws IOException

Und in dir steht, rate mal ;) , das Verzeichnis in dem gearbeitet werden soll.

jetzt sag nicht, im letzten abschnitt??? Och nein... das wäre ja zu simple... gleich mal an testen!

Danke für den Hinweis... jetzt macht JAVA + BAT genau was sie sollen...

Vielen Dank an Alle!

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.