Per Batchdatei kopieren, wenn eine bestimmte Anzahl und Bezeichnung von Dateien in einem Verzeichnis vorhanden sind

Mitglied: imebro

imebro (Level 2) - Jetzt verbinden

13.04.2016 um 08:43 Uhr, 1034 Aufrufe, 5 Kommentare

Hallo,

um einen Kopiervorgang per robocopy zu starten, möchte ich zunächst in einem bestimmten Verzeichnis prüfen, ob bestimmte Dateien im Quellverzeichnis vorhanden sind.
Wenn ja, soll der Kopiervorgang starten. Wenn nein, soll eine Fehlermeldung erscheinen.

Quelle:
S:\install\AidA\kopieren\Datei_1
S:\install\AidA\kopieren\Datei_2
S:\install\AidA\kopieren\Datei_3
S:\install\AidA\kopieren\Datei_4

Ziel:
\\Mueller-R\C$\Program Files\AidA

Im Quellverzeichnis dürfen nur genau diese 4 Dateien enthalten sein... keine weiteren!!
Nur dann soll kopiert werden.

Mein bisheriger Code:


In diesem Code habe ich schon mal mit "if exist", bzw. "if not exist" versucht... aber ich denke, dass es elegantere Lösungen gibt ;-) face-wink

Danke und Gruss,
imebro
Mitglied: TlBERlUS
13.04.2016, aktualisiert um 09:13 Uhr
Guten Morgen,

Powershell:

Bitte warten ..
Mitglied: imebro
13.04.2016, aktualisiert um 16:55 Uhr
Vielen Dank...

Die Dateibezeichnungen "Datei_1" bis 4 waren nur stellvertretend gewählt.
Es handelt sich um 4 ganz unterschiedliche Dateien mit unterschiedlichen Endungen.

Zusätzlich gibt es in meinem Code 5 unterschiedliche Ziele (für 5 Mitarbeiter).
Im Moment habe ich daher beim SET-Befehl Ziel1 bis Ziel5 definiert und ebenso beim robocopy-Befehl Ziel1 bis Ziel5 angesprochen.

Wie würde ich das realisieren und im Code eingeben?

LG
imebro

Hier mein momentaner kompletter Code:


Bin aber nicht sicher, ob ich damit tatsächlich ermitteln kann, ob wirklich nur 1 Verzeichnis und 3 Dateien im Quell-Ordner liegen, obwohl ich bei der if-Abfrage ja eine UND-Verknüpfung nutze.
Bitte warten ..
Mitglied: rubberman
13.04.2016 um 18:26 Uhr
Hallo imebro,

wie viele überflüssige GOTOs willst du denn noch in die paar Zeilen Code packen? ;-) face-wink

Zu deiner Frage: Wenn es nicht weniger als die 4 Items sein dürfen, reicht deine Abfrage. Wenn es aber auch mehr als diese 4 sein könnten und du das auch als Fehler werten willst, brauchst du eine weitere Prüfung.
Verarbeite die Ausgabe des DIR Befehls und zähle die gefundenen Items (geht mit FIND, siehe unten). Wenn es 4 sind, geht's mit dem nächsten IF weiter ...

Grüße
rubberman
Bitte warten ..
Mitglied: imebro
14.04.2016, aktualisiert um 09:18 Uhr
Hallo rubberman,

danke für Deine Mühe...

Tja, wenn ich die richtige Lösung bereits gewußt hätte, hätte ich natürlich auf die ganzen überflüssigen GOTOs verzichtet ;-) face-wink

Mit "find" und der "for-Abfrage" wird also nun ermittelt, ob sich tatsächlich nur 1 Verzeichnis und 3 Dateien in dem Quellverzeichnis befinden? Bei der ersten Angabe ".../lib" handelt es sich nämlich um ein Verzeichnis mit dem Namen "lib".
Und ja... es dürfen nicht mehr und nicht weniger Verzeichnisse/Dateien in dem Quellverzeichnis sein.

In einem eben durchgeführten Test mit einem Test-Zielverzeichnis, wurden tatsächlich das eine Verzeichnis (lib) sowie die 3 Dateien (.jar und .bat) dort hinein kopiert.

Danke und Gruss,
imebro
Bitte warten ..
Mitglied: rubberman
LÖSUNG 14.04.2016 um 19:05 Uhr
Hallo imebro

Mit "find" und der "for-Abfrage" wird also nun ermittelt, ob sich tatsächlich nur 1 Verzeichnis und 3 Dateien in dem Quellverzeichnis befinden?
Es wird ermittelt, ob sich genau 4 Dateisystemelemente dort befinden. Hier wird noch nichts über die Eigenschaften dieser Elemente geprüft.

Bei der ersten Angabe ".../lib" handelt es sich nämlich um ein Verzeichnis mit dem Namen "lib".
Ja, das hatte ich bereits vermutet und entsprechend berücksichtigt, indem ich für die Prüfung einen Backslash angehängt habe. Gäbe es statt dem Verzeichnis "lib" eine Datei "lib", würde dieser Test fehlschlagen.

Grüße
rubberman
Bitte warten ..
Heiß diskutierte Inhalte
LAN, WAN, Wireless
Starlink im Unternehmen?
0xFFFFVor 15 StundenFrageLAN, WAN, Wireless37 Kommentare

Guten Morgen Admins, leider leiden wir darunter, dass wir uns hier in DE noch in einem Entwicklungsland was die Internetanbindung angeht, sehr. Nun kam ...

Off Topic
Klimaanlage im Serverraum
gelöst imebroVor 11 StundenFrageOff Topic19 Kommentare

Hallo, wir haben einen kleinen Serverraum (viell. 5 - 6 m²), in dem ein Serverschrank steht. Der Raum hat kein Fenster!!! Darin befinden sich ...

Microsoft
Datenkrake - Browser
DennisWeberVor 1 TagErfahrungsberichtMicrosoft10 Kommentare

Hallo zusammen, ich empfehle euch mal definitiv in "Temp" Verzeichnis eures Browsers zu schauen. Es war für mich erschreckend, wie viele wichtige Dokumente und ...

Netzwerkmanagement
Sicherheitsrisiken Synology DS Admin Konto
RitchtoolsVor 1 TagFrageNetzwerkmanagement6 Kommentare

Hallo Zusammen, ich habe die Pflege von einem Firmen NAS übernommen (Synology) es sind mehrere Rechner im Netzwerk die auf Daten zugreifen. Leider hat ...

Windows 10
Windows 10 hängt bei Neustart immer bei "Bitte warten" über Stunden
gelöst Odde23Vor 12 StundenFrageWindows 1023 Kommentare

Ich habe seit längerem, um genau zu sein seit gut einem Jahr, da wurde der Rechner gekauft, das Problem, dass der Rechner bei einem ...

Windows 10
Windows 10 System Recovery Ordner fast 60 GB - Wie löschen?
Looser27Vor 1 TagFrageWindows 106 Kommentare

Guten Morgen, bei einem unserer Clients funktioniert scheinbar das automatische Aufräumen nach Updates / Upgrades nicht. Wie kann ich dem Kollegen auf die Schnelle ...

Windows 10
Windows 10 verliert die Druckertreiber
KMP1988Vor 1 TagFrageWindows 1010 Kommentare

Servus zusammen, wir haben bei einem Kunden folgende Konstellation: - Server2019 (AD, DNS, DHCP) - Server2019 (Print-Server-Rolle) - W10-Clients Die Drucker werden übers Logon-Scirpt ...

DNS
Opendns.com - Kosten?
cordialVor 1 TagFrageDNS2 Kommentare

Moin, Ich möchte gerne den OpenDNS Dienst mal verstehen. Hab da schon länger einen Account mit Filterung. Die "Free" Edition bei OpenDNS ist doch ...