gelöst Variablenauflösung innerhalb verschachtelter FOR-Schleife

Mitglied: matbuss

matbuss (Level 1) - Jetzt verbinden

22.04.2010 um 17:11 Uhr, 3575 Aufrufe, 7 Kommentare

Hallo allerseits,

ich hoffe Ihr könnt mir bei meiner folgenden Frage helfen. Ich habe schon hier im Forum gesucht, bin allerdings leider noch nicht fündig geworden. Ich finde einfach den Fehler nicht.

Hintergund ist folgender:
Alte PST-Dateien werden automatisch auf einen Server zur Ablage verschoben. Der Dateiname der PST-Dateien entspricht dabei dem Postfachnamen des Benutzers. Zu diesen PST-Dateien sollen jetzt jedoch noch weitere Informationen bereit gestellt werden. Diese Informationen sollen, aus einem mit "#" getrenntem CSV extrahiert werden, dass täglich generiert wird. Diese zusätzlichen Informationen sollen dann als separate Attributdatei mit gleichem Präfix zur PST-Datei und Suffix "txt" abgelegt werden.

Die Ermittlung der PST Dateien ansich sowie die Ermittlung der Attribute ansich funktionieren auch. Problematisch wird dies allerdings jedoch in der Kombination, dann erhalte ich immer die Fehlermeldung "File not found". Ich vermute, dass irgendwie die Variable "!pstName!" in der inneren For-Schleife nicht korrekt aufgelöst wird, allerdings komme ich dem Problem auch nach Stunden nicht auf die Spur.

Die alleinstehende For-Schleife dient zur Ermittlung des Dateinamens, des aktuellsten Reports. Der Dateiname enthält dabei am Ende das Tagesdatum (funktoniert soweit).

Bei den beiden verschachtelten For-Schleifen soll die äußere dazu Dienen, alle bereits im Verzeichnis befindlichen PST-Dateien zu durchlaufen (Skript wird 1x täglich gestartet). Dabei wird das *.pst in *._pst umbenannt, um nicht erneut aufgegriffen zu werden (funktioniert soweit auch). Dann soll für jedes gefundene PST innerhalb der inneren For-Schleife, die Reportdatei durchlaufefen werden, um die entsprechenden Attribute zu übermitteln. Gebe ich den Reportnamen fix ein, funktioniert dies auch, allerdings nicht unter Verwendung von !pstName!.

Wo habe ich hier etwas übersehen?

Vielen Dank im Voraus.

Gruß,
matbuss


Mitglied: bastla
22.04.2010 um 17:41 Uhr
Hallo matbuss und willkommen im Forum!

Eigentlich würde ich das eher so versuchen:
Die Verwendung des "searchFilters" ergibt in der derzeitigen Form keinen Sinn (eine Zeile
oder
sollte schon genügen) ...

... und solange ich nicht weiß, was Du mit den Attributen noch alles anstellen willst, würde ich auch die Variablen dafür einsparen und einfach "%%b" bis "%%k" verwenden.


Grüße
bastla
Bitte warten ..
Mitglied: Biber
22.04.2010 um 17:58 Uhr
Moin matbuss,

willkommen im Forum.

Ich vermute den Fehler in den Zeilen 19-23, die sogar für mich etwas verworren aussehen... und ich habe einiges Wirres zusammengeschrotet.

Also:
Aber:
Die Datei, die (manchmal) nicht gefunden wird
--> liegt daran, dass du eine Dateiliste durchläufst (FOR-Anweisung in Zeile 19), die du aber innerhalb der For-Anweisung änderst.

Ist vergleichbar einer Schleife, die du von einem Zähler x=1 bis x=100 laufen lässt und im Anweisungsteil dann mal sagst: x = 21

Das Ergebnis ist nicht so genau prognostizierbar.

Du brauchst die Umbenamserei ja nicht wissenschaftlich aufarbeiten, aber sinnvoll wären nur zwei Strategien IMHO:
  • entweder eine SORTIERTE Liste erzeugen mit einem DIR-Befehl o.ä. - meinetwegen nach Datum oder nach Größe. Dann kannst du die Elemente (Dateien) DIESER Liste nach Herzenslust mit anderen Datei-NAMEN oder ENDUNGEN ausgestalten.
  • oder du schreibt die komplette Liste der abzuarbeitenden Dateien in eine Temp-Datei... dann kannst du eine Zeile nach der anderen lesen und die Dateien umbenamsen.

Grüße
Biber

[Edit] ...okay, okay, bastla... der Kaffee hat mir nichts genützt.... ich hol mir mal was Stärkeres... [/Edit]
Bitte warten ..
Mitglied: bastla
22.04.2010 um 19:02 Uhr
@Biber
entweder eine SORTIERTE Liste erzeugen mit einem DIR-Befehl o.ä. - meinetwegen nach Datum oder nach Größe.
Sollte nicht bereits ein simples "dir /b" genügen, um bereits vorweg eine komplette (und innerhalb der Schleife nicht mehr upgedatete) Dateiliste zu erhalten?

Grüße
bastla

P.S.: Du hättest Dich vielleicht doch für die "lila" Pause entscheiden sollen ...
Bitte warten ..
Mitglied: matbuss
22.04.2010 um 19:43 Uhr
Hallo,

danke für die super schnelle Rückmeldung. Ich werde das direkt morgen früh ausprobieren

Gruß,
matbuss
Bitte warten ..
Mitglied: Biber
22.04.2010 um 22:13 Uhr
[OT] @bastla
Zitat von bastla:
@Biber
> entweder eine SORTIERTE Liste erzeugen mit einem DIR-Befehl o.ä. - meinetwegen nach Datum oder nach Größe.
Sollte nicht bereits ein simples "dir /b" genügen, um bereits vorweg eine komplette (und innerhalb der Schleife
nicht mehr upgedatete) Dateiliste zu erhalten?

Kann ich beantworten, ob die Liste "nicht mehr upgedated" wird
--> der "scharf gemachte" Durchlauf unten ohne "echo" läuft EINmal.

Grüße
Biber

[/OT]
Bitte warten ..
Mitglied: bastla
22.04.2010 um 22:36 Uhr
[OT2]
@Biber
Leider auch mit Sortierung:
Aber:
Grüße
bastla

[/OT2]
Bitte warten ..
Mitglied: matbuss
23.04.2010 um 11:09 Uhr
Hallo,

besten Dank für die Hilfe. Habe eure Anmerkungen da mit eingearbeitet und auch die Variablen weg geschmissen. Funktioniert jetzt einwandfrei .

Gruß,
matbuss
Bitte warten ..
Heiß diskutierte Inhalte
Windows Netzwerk
Netzwerkkomponent mit SD-Kartenslot
gelöst waddalosFrageWindows Netzwerk27 Kommentare

Hallo an alle, folgendes Problem gibt es bei uns im Unternehmen: Der Wareneingang soll jeden Eingang fotografieren und anschließend ...

Server
File Portal mit Userverwaltung gesucht
gelöst McLionFrageServer21 Kommentare

Hallo zusammen, ich suche eine Art Fileserver im Webbrowser. Es gibt diese zwar wie Sand am Meer, jedoch ohne ...

PHP
Fehler mit PHP-FPM
adriaanFragePHP20 Kommentare

Hallo guten Abend liebe Forenmitglieder, ich habe ein Problem. Nämlich habe ich ein Kontroll PHP Skript heruntergeladen und damals ...

E-Mail
Email verteilen
jensgebkenFrageE-Mail17 Kommentare

Hallo Gemeinschaft, ich habe eine email Adresse testtest.de , die an zwei email Konten geleitet werden soll einmal an ...

Windows Server
Internetzugang über Terminalserver
Felix0201FrageWindows Server13 Kommentare

Hallo, ich habe folgendes Anliegen. Wir wollen einen Terminalserver für ca. 20-25 Nutzer bereitstellen. Ist es da besser den ...

Server-Hardware
Gebrauchten Server zum Weiterbilden gesucht
AnukadFrageServer-Hardware13 Kommentare

Liebe Community, ich weiß dazu gibt es schon einige Themen im Forum, leider sind dies nicht mehr die neusten ...

Ähnliche Inhalte
Batch & Shell
For-Schleifen 8
gelöst IleiesFrageBatch & Shell5 Kommentare

Hallo zusammen, Inzwischen habe ich einen großen Teil des For-Schleifen Tutorials gelesen, verstanden und umgesetzt. Einige Threads haben sich ...

Batch & Shell
Wieder For-Schleifen
gelöst IleiesFrageBatch & Shell1 Kommentar

Hallo zusammen, Wieder zurück zu den FOR-SCHLEIFEN: Wie kann ich das Ganze kürzen?

Batch & Shell
For-Schleife 7
gelöst IleiesFrageBatch & Shell3 Kommentare

Hallo zusammen, Mit bekomme ich z.B. diese Datei: Mit Schreibe ich an jede Zeile dieser Datei ein "s" daran. ...

Suse
Veeam Agent for Linux
chiefteddyFrageSuse4 Kommentare

Hallo, hat jemand Erfahrung mit der Installation des Veeam-Agenten für Linux unter Suse SLES 11? Die Installation kann nicht ...

Microsoft Office
Skype for Business Plan2
Leo-leFrageMicrosoft Office4 Kommentare

Hallo Forum, wir sind in der Überlegung "Skype for Business Plan 2" zu migrieren. Nun würde mich mal interessieren, ...

Windows Server
Skype for Business Server??
gelöst askandoFrageWindows Server16 Kommentare

Hallo Zusammen, ich habe die Anforderung bekommen das ich Standortkonferenzen realisieren soll. (Teilweise sollen darüber Schulungen stattfinden - wo ...

Neue Fragen
Administrator Magazin
11 | 2020 Virtualisierung ist aus der IT nicht mehr wegzudenken. In der November-Ausgabe des IT-Administrator Magazins dreht sich der Schwerpunkt um das Thema "Server- und Storage-Virtualisierung". Darin erfahren Sie, wie sich die Virtualisierungstechnologie entwickelt hat, welche Varianten es im Bereich Server und Speicher gibt und wie ...
Neue Beiträge
Neue Jobangebote
Server- und Storage-VirtualisierungServer- und Storage-VirtualisierungBerechtigungs- und IdentitätsmanagementBerechtigungs- und IdentitätsmanagementWebdienste und -serverWebdienste und -serverDatenbankenDatenbankenMonitoring & SupportMonitoring & SupportHybrid CloudHybrid Cloud