Jump to content

Mit Batch-Datei Dateinamen vergleichen?


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

Empfohlene Beiträge

Geschrieben

Hallo Forum,

 

ich brauche eine Batch-Datei die mir bei folgendem Problem hilft:

 

Im Verzeichnis A sind Dateien, die ins Verzeichnis B kopiert werden sollen. Aber nur die, die im Verz. C noch nicht vorhanden sind.

 

Einfach überschreiben, bzw. mit robocopy -minage und ähnliches geht nicht. Es muss der weg über drei Verzeichnisse gegangen werden.

 

Wie krieg ich sowas hin?

 

Vielen Dank :)

Grins

Geschrieben

es geht nur um die dateinamen. Aber ich weiss im voraus nicht, wie die Datein heissen, die werden automatisch generiert und haben leider keine fortlaufenden nummern oder sowas (dann hätte ich auch das problem nicht).

 

wie würde die syntax mit if exist aussehen? ich weiss nur dass es den befehl gibt, aber nicht wie man ihn umsetzt :rolleyes:

Geschrieben

Hi!

Bei solch "komplizierteren" Fällen nehm ich immer dBase bzw. einen xBase-Clone.

Dazu erzeuge ich zwei Tabellen mit identischen Strukturen, zb.

Name: Verz1, Feldname: Datei, Typ: Char, Länge: 254

Dann lasse ich mir mit DIR /B > Verz1.txt und DIR /B > Verz2.txt die Dateien in Kurzform in die VerzX-Dateien ausgeben.

Mit USE Verz1; ZAP; APPE FROM Verz1.txt SDF lese ich die Inhalte in die Tabellen.

Die öffne ich, SELEktiere die erste, les den Filenamen ein und schaue mit LOCA FOR in der zweiten Tabelle nach, ob die Datei da ist. Wenn nicht: Kopie via RUN COPY plus Parameter, wenn da: SKIP. Alles bis EOF().

Du bist ja nicht auf xBase angewiesen, ist mit einem (wenn vorhanden) Datenbänkchen-Prog nur recht schnell getan.

Wenn Du keine wirklich passende Lösung findest und/oder mit meinem Tip nicht klar kommst, kannst Du Dich wg. weiterer Unterstützung ja noch mal melden.

Gegrüßt!

Geschrieben
wie würde die syntax mit if exist aussehen? ich weiss nur dass es den befehl gibt, aber nicht wie man ihn umsetzt :rolleyes:

 

Zum Beispiel so:

 

@echo off
if exist c:\dateiname.txt (
    copy a:\dateiname.txt b:\
  ) else (
    echo datei nicht vorhanden
  )

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