Anzeige

Am Puls von Microsoft

Anzeige

Frage brauche Hilfe bei der Batch-Programmierung Befehl FOR

JHBreuer

Herzlich willkommen
Problem erledigt

Ich brauche nur eine Information WIE programmiere ich den Batch-Befehl FOR, damit ein Verzeichnis-Satz mit seinen Informationen ausgelesen wird. Ich habe das Problem umfassend in meinem Blog: Windows7 Batch-Verarbeitung JHB: Wer kann mir bei der Win7 Batch-Programmierung helfen? Das Verarbeitungs-Programm Windows7 Batch-Verarbeitung JHB: Hilffe für Batch-Verarbeitung Befehl FOR gesucht. und den Daten und die Daten-Struktur Windows7 Batch-Verarbeitung JHB: Verzeichnisi-Struktur der Datengruppe anlisten. umfassend beschrieben. Bislang ist es mir nur über den Umweg Textdatei möglich, eine Verarbeitung anzustossen. Ziel der Anstrengung ist, einen Installationsablauf zu Automatisieren. Bei einer Menge von 20+30+20 Programmen und Modulen kann man leicht mal aus dem Takt kommen.
Weitere Informationen nach einen hoffendlich posetiven Kontakt.
Gruß Jürgen
 
Zuletzt bearbeitet:
Anzeige

Maddes

gehört zum Inventar
Hallo Jürgen,

die ganzen Grafiken mit dem Quellcode zu analysieren ist wohl etwas viel verlangt. Die Fehler musst du schon selbst finden. Ich kann dir lediglich einige Tipps zur Fehlersuche geben. Beginnen wir mit einem Satz aus deinem Blog.

Wenn ich die Original Datei mit

Rem For /R (%Gruppe%) "eol=; delims=;" %%I IN (%File%) DO (Call %Pgm% %Char%,%I)

einlese bekomme ich kein Ergebnis.
Zunächst einmal hast du diese Codezeile mit Rem als Kommentar gekennzeichnet. Schon aus diesem Grund wird sie schlicht und ergreifend nicht ausgeführt. Ansonsten fällt mir auf, dass du mit sehr vielen Variablen arbeitest. Drucke dir doch mal deinen ganzen Code aus und notiere dir auf dem Ausdruck, welchen Wert die Variablen zu jedem Zeitpunkt haben sollen. Anschließend lässt du den Code Schritt für Schritt abarbeiten und vergleichst nach jedem Schritt die Variablenwerte. Auf diese Weise ist es meist möglich, einen Fehler zu finden.
Außerdem hast du geschrieben, dass dein Programm funktioniert, wenn du mit einer txt-Datei arbeitest. Warum verwendest du die nicht einfach? Dadurch bekommst du noch den Vorteil, dass dein Programm flexibler wirst. Wenn du wieder einmal vor der Aufgabe stehst, dass du deinen Batch laufen lassen musst und die Anforderungen haben sich geändert, musst du lediglich die Textdatei ändern, was einfacher ist als das Ändern des Quellcodes. Weshalb willst du jetzt viel Arbeit investieren, um diesen Vorteil zu beseitigen?

Oder habe ich das irgendwie falsch verstanden?

Gruß
Mathias
 

JHBreuer

Herzlich willkommen
Hallo Mattes
ich habe gestern das Modul fertiggestellt.
Informationen durch googlen und probieren besorgt.
Der Code jetzt:

:: Variablen expandieren
@SETLOCAL ENABLEDELAYEDEXPANSION
:: Protokoll AN/AUS
@Echo Off
:: Definitionen
:: Sub-Batch Nur_Anzeige
@Set Anz=CmdBatA.bat
:: Sub-Batch Verarbeitung
@Set Pgm=CmdBatu.exe
:: Steuerzeichen: Call Strt Anfang Ende
@Set Call=.
@Set Strt=_
@Set [email protected]@@@@
@Set Ende=#####
:: Uebergabe-Parameter Sub-Batch
:: String [email protected]@@@@#####
@Set Px=%Call%%Strt%%Anfg%%Ende%
:: File-Name (Variabel)
@Set File=Gruppe200_Studio_11_Ultimate
:: Input-Verzeichniss (Fixiert)
@Set Pin03=O:\03_Pinnacle-Gruppe\
:: Output-Verzeichnis (Fixiert)
@Set Pin04=O:\04_Pinnacle_Bat_Txt\
:: Pfad = Input\File
@Set Dir=%Pin03%%File%\
:: Pfad = Output\#_Dir.txt
@Set Text=%Pin04%#_Dir.txt
:: Pfad = Output\#_Ziel
@Set Ziel=%Pin04%#_Ziel
:: Pfad = Output\#_Ziel
@Set Mbr=%0%
::
@Echo Anzeige Pgm1+2 und Steuerung
@Echo Anz = %Anz%
@Echo Pgm = %Pgm%
@Echo Px = %Px%
::
@Echo Datei, Input, Output
@Echo File = %File%
@Echo Pin03 = %Pin03%
@Echo Pin04 = %Pin03%
::
@Echo Pfad: Input, Output, Ziel
@Echo Dir = %Dir%
@Echo Text = %Text%
@Echo Ziel = %Ziel%
@Echo Mbr = %Mbr%
@Echo.
@Echo ============= Ab Hier Programm =================
@Echo.
@FOR /f "tokens=1*" %%I IN ('DIR %Dir% /b /r') DO (Call %Pgm% %Px% %Dir% %%Mbr %%I)
:Ende
@EOF

Wenn Dir die vielen Variablen seltsam vorkommen, denke bitte daran, dies Paket wird von Außen per Daten gesteuert und ist somit allgemein geschrieben.

Gruß Jürgen
 
Zuletzt bearbeitet von einem Moderator:

Maddes

gehört zum Inventar
Hallo Jürgen,

nein, die Variablen kommen mir nicht merkwürdig vor, aber ich weiß aus Erfahrung, dass falsche Variableninhalte einen häufig auf vorhandene Fehler aufmerksam machen. Aber das wichtigste ist ja, dass es jetzt läuft.

Und wieder weg
Mathias
 
Anzeige
Oben