Jump to content

Mehrere Batch mit einer Batch aufrufen


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Guten tag,

 

wie der Name schon sagt würde ich gern mit einer Batch mehrere andere Batch Datein aufrufen.

 

for /f "tokens=*" %%a in ('dir /b /ad B_*') do (xcopy /e /i /q /y "%%a" Belege\Baustelle\%%a && rd /s /q "%%a")
for /f "tokens=*" %%a in ('dir /b /ad R_*') do (xcopy /e /i /q /y "%%a" Belege\Reperatur\%%a && rd /s /q "%%a")

 

Diese Batch Datei soll aufgerufen werden. Sie liegt in jedem Kundenordner unter "D:\Freigaben\Kunden\KUNDENAME", wobei der jeweilige Kundenordner natürlich für jeden Kunden unterschiedlich ist.

 

Bisher habe ich:

set "Basis=D:\Freigaben\Kunden"
for /d %%i in ("%Basis%\*") do if exist "%%i\Belege.bat" call "%%i\Belege.bat"

 

 

Diese Batch Datei liegt unter "D:\Scripte\Call Belege.bat".

 

Leider führt die Datei die Batch Datei nicht aus. Vermutlich wird durch das aufrufen durch die erste Batchdatei ein falscher Scriptpath in die aufzurufende Batch übernommen, oder so?

 

Habt ihr ne Idee wie man das hinbekommen kann?

Vielen Dank im Voraus.

Link zu diesem Kommentar

set Basis=D:\Freigaben\Kunden
echo %Basis%

 

Er spuckt mit den korrekten Pfad aus. Das ist kein Problem.

Das Problem besteht darin, dass wenn diese Batch Datei die Datei "Belege.bat" aufruft, dann wird der Befehl dieser Batch Datei:

 

for /f "tokens=*" %%a in ('dir /b /ad B_*') do (xcopy /e /i /q /y "%%a" Belege\Baustelle\%%a && rd /s /q "%%a")
for /f "tokens=*" %%a in ('dir /b /ad R_*') do (xcopy /e /i /q /y "%%a" Belege\Reperatur\%%a && rd /s /q "%%a")

 

leider nicht in dem richtigen Verzeichnis ausgeführt.

 

"D:\Freigaben\Kunden\Kundenname\Belege.bat" <--- hier liegt die "Belege.bat" und hier soll sie auch ausgeführt werden.

Wenn ich diese Batch in dem ordner selbst ausführe, dann klappt alles, wenn ich sie über eine andere batch aufrufe wie oben beschrieben, dann geht es nicht.

 

 

*** Zusatz:

 

Was das Script eigentlich machen muss:

1. im Basispfad den ersten ordner suchen und reingehen

2. die Batch Datei in dem ordner ausführen

3. das Verzeichnis wieder in eine Ebene höher wechseln (cd..)

4. In das nächste Verzeichnis wechseln und die Schritte erneut ausführen

 

 

Sequentuell für einen Odner geht es... wie verpacke ich das in eine Schleife?

bearbeitet von Nevuor
Link zu diesem Kommentar

Hallo,

 

wie wäre es, das Ausführen im gewünschenten Pfad zu erzwingen, den Pfad dem Ausführen voranstellen oder dorthin zu navigieren mit cd?

 

Weiter, ist es zwingend notwendig, aus einer Batch heraus weitere Batches aufzurufen?

 

Jetzt ist mir etwas aufgefallen:

 

for /d %%i in ("%Basis%\*") do if exist "%%i\Belege.bat" call "%%i\Belege.bat"

 

Befindet sich denn die Belege.bat innerhalb des Pfades %%i, machte das denn Sinn?

 

Wurde der Ablauf denn mal verfolgt, mit Pause angehalten?

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...