Jump to content

Batch Problem bei externem Aufruf


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

Empfohlene Beiträge

Hallo,

 

Ich lasse eine Produktion mit mehreren Batchfiles laufen die verschiedenste Sachen erledigen. Das letzte davon soll mir per Mail einen Bericht schicken... was es auch tut nur leider stimmt der bericht nur wenn ich das Batchfile direkt aufrufe, also daraufklicke oder per geplantemtask.

 

Wenn ich allerdings das batchfile in einem anderen batchfile calle (zuerst passieren noch andere schritte) dann haut das nicht hin:

 

...
echo -------------------------------------------- >> report.txt
echo ###(1.)### DATEN ######### >> report.txt
echo -------------------------------------------- >> report.txt
echo. >> report.txt
FOR /F "delims= " %%i in ('Dir cases\downloads\JJ*.xml /s /A-D^|find "Datei(en)" ') do set nrorg=%%i
set /a a = %nrorg% +1
IF %a% EQU 1 (echo OGH: 0 >> report.txt) ELSE (echo OGH: %nrorg% >> report.txt)

FOR /F "delims= " %%i in ('Dir cases\downloads\JF*.xml /s /A-D^|find "Datei(en)"') do set niorg=%%i
set /a b = %niorg% +1
IF %b% EQU 1 (echo VfGH: 0 >> report.txt) ELSE (echo VfGH: %niorg% >> report.txt)


FOR /F "delims= " %%i in ('Dir cases\downloads\JW*.xml /s /A-D^|find "Datei(en)"') do set noorg=%%i
set /a c = %noorg% +1
IF %c% EQU 1 (echo VwGH: 0 >> report.txt) ELSE (echo Vwgh: %noorg% >> report.txt)...

 

Die Datei soll zählen wie viele Dateien mit gewissen Namensanfängen sich in einer Verzeichnisstruktur befinden. Wie gesagt bei direktem Aufruf ist alles klar, aber bei Aufruf aus einem anderen batch da sagt er mir:

 

Der Befehl "find" ist entweder falsch geschrieben oder

konnte nicht gefunden werden.

 

Hat einer eine Idee dazu ?!

 

BTW: Ich habe den Code zum suchen (FOR /F "delims= " %%i in ('Dir cases\downloads\JJ*.xml /s /A-D^|find "Datei(en)" ') do set nrorg=%%i) aus dem Netz und frage mich was dieses ^|find "Datei(en)" überhaupt soll...kann mir da einer Helfen ?!

 

Bitte lest auch das Stück Text durch auch wenn es einwenig länger ist :-)

Link zu diesem Kommentar

Danke für deine Antwort...

 

Jetzt schreibt er das er den Befehl "JJ*.xml" nicht finden kann...dazu ist zu sagen das ich den Code leicht abgeändert habe: (gepostet ist nur die Änderung)

 

...
FOR /F "delims= " %%i in ('Dir cases\downloads\ /s /A-D^|find "JJ*.xml" ')
...

 

Es ist auch zu bemerken das ich nur Probleme mit dem externen Aufruf habe wenn ich im aufrufenden batchfile auch noch andere Batchfiles calle...tue ich das nicht funktioniert es (mit dem original Code)

Link zu diesem Kommentar

Moin,

 

es ist ein wenig zielloses Rumgestochere, wenn wir deinen Code nur rudimentär kennen.

 

Wie rufst du denn die anderen Batches auf? Und wie beenden die sich? In einer vergleichbaren Situation hatte ein Kunde mal am Ende seiner Batches immer "exit" stehen und wunderte sich, dass der steuernde Batch nicht weiterlief - konnte er aber gar nicht, denn "exit" beendet den Kommandoprozessor.

 

Gruß, Nils

Link zu diesem Kommentar

Okay, fürs erste scheint das Prob gelöst:

 

Ich habe die jetzt alle statt mit call mit start /B /WAIT aufgerufen und in die .bats ein exit eingefügt.

 

Mal sehen wie das morgen funktioniert wenn das über den geplanten Task aufgerufen wird.

 

*hoffedasdasfunzt*

 

Danke an alle !

 

PS:bitte noch nicht closen denn wenn das morgen wieder nicht funktioniert geht das Problem weiter -.-

Link zu diesem Kommentar

 

PS:bitte noch nicht closen denn wenn das morgen wieder nicht funktioniert geht das Problem weiter -.-

 

Hallo Patsrv

 

Wir Closen Beiträge nur in Ausnahmefällen, wenn z.B. ein Beitrag gegen unsere Boardregeln verstösst oder ein Support offensichtlich sinnlos ist. Im zweiten Fall gibts vor dem Close mindestens einen deutlichen Wink mit dem Zaunpfahl von einem Moderator.

 

Deine Fragen sind absolut ok

 

cu

blub

Link zu diesem Kommentar

Okay, das Problem weshalb ich den thread geöffnet habe scheint gelöst, jedoch gibt es ein andere in dem zusammenhang.

 

Ich sagte ja schon das das ganze über einen geplanten Task aufgerufen wird.

 

Was passiert ist folgendes.

Das ganze sollte eigentlich bis zu 3 Tage dauern, ich bekomme aber schon nach ca. 5 min eine mail das der Prozess abgeschlossen ist.

Wenn ich die Ordner und logs durchschaue sieht es so aus als ob so gut wie nix passiert wäre - um genau zu sein wird das 1. .bat bis zur Häflte ausgeführt (so scheint es) und danach geht irgendetwas schief (ich konne im .bat keinen Grund dafür finden) Weil das 1. bat seine arbeit nicht vollständig verrichtet machen die anderen nichts bis nur unsinn und so schlägt alles fehl.

 

Das komische ist, wenn ich angemeldet bin während sich der task startet funzt alles wunderbar...

 

Idee dazu ?!

 

Falls ihr wirklich den Code von allen .bats wollt kann ich den gerne reinstellen, würde aber bisschen dauern da ich den zensieren müsste...

Link zu diesem Kommentar

Okay, hier das .bat das am Anfang Probleme macht.

 

@echo off
SET PATH=%PATH%;.;R:\Produktion\Tools\perl\bin

echo ********************************** > log1.txt
echo *  Alte Dateien werden entfernt  * >> log1.txt
echo **********************************>> log1.txt

rd /Q /s cases\downloads\ >> log1.txt
mkdir cases\downloads\ >> log1.txt
del /Q logs\*.txt >> log1.txt

echo ************************************* >> log1.txt
echo * Neue Daten werden vom FTP geladen * >> log1.txt
echo ************************************* >> log1.txt

ftp -v -s:technik\ftp_script.txt ip-adresse >> log1.txt    

echo ****************************** >> log1.txt
echo * Neue Daten werden entpackt * >> log1.txt
echo ****************************** >> log1.txt

R:\Produktion\tools\unzip\unzip Jus* >> log1.txt
R:\Produktion\tools\unzip\unzip Vfgh* >> log1.txt
R:\Produktion\tools\unzip\unzip Vwgh* >> log1.txt

move /Y J*.xml cases\downloads >> log1.txt   

exit      	          

 

Es scheint bis zum entpacken der Dateien alles hinzuhauen, danach steht im Logfile nichts mehr. Normalerweise wird da inflating: %dateiname% ausgegeben.

 

In log1.txt seht ihr wie der log aussiehtdie Datei autom. ausgeführt wird und in log2.txt (gekürtzt weil zu groß) seht ihr wie sie aussieht wenn ich sie händisch ausführe.

 

Idea anyone ?!

log1.txt

log2.txt

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...