Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hallo,

ich habe folgendes Problem:

Ich habe eine Verzeichnisstruktur.

In dieser Verzeichnisstruktur sind, mehrere unterschiedliche Dateien mit dem gleichen Dateinamen vorhanden.

Jetzt kopiere ich diese Dateien, ausgewählt nach den in der Schleife stehenden Kriterien, in einen neues Verzeichnis (Ordner).

Die Verzeichnisstruktur wird nicht übernommen was bedeutet, dass alle Dateien in dem gleichen Verzeichnis (Ordner) liegen.

Es muss verhindert werden, dass die Dateien sich überschreiben.

Es sind ja nur die gleichen Namen aber nicht dieselben Dateien.

Es muss also nach jedem kopieren überprüft werden ob der vorhandene Dateiname existiert wenn ja soll eine Nummer, beginnend bei 1, angehangen werden.

Alternativ einfach kopieren.

Beispiel:

Es gibt in einer Verzeichnisstruktur 2 Ordner.

Beide Ordner enthalten die Dateien mit dem Namen, Rechnung-01.02.08.

Nun werden diese Dateien in den Ordner 2008 kopiert.

Normalerweise würden sie überschrieben.

Ich möchte aber am Ende in dem Ordner 2008 2 Dateien mit den Namen,

Rechnung-01.02.081 und Rechnung-01.02.08.

Bei 3, 4, u.s.w. gleicher Dateinamen soll das selbe Prinzip angewandt werden.

Danke.

Gruß

Geschrieben

Hallo,

ich denke welches Problem ich habe dürfte in meiner Frage klar werden.

Damit schließe ich das Beispiel ein.

Ich habe das Problem, dass Dateien mit gleichem Dateinamen die in einen Ordner kopiert werden überschrieben werden.

Das sollen sie aber nicht.

Sie sollen umbenannt werden und dann kopiert werden.

„Es gibt in einer Verzeichnisstruktur 2 Ordner.

Beide Ordner enthalten die Dateien mit dem Namen, Rechnung-01.02.08.

Nun werden diese Dateien in den Ordner 2008 kopiert.

Normalerweise würden sie überschrieben.

Ich möchte aber am Ende in dem Ordner 2008 2 Dateien mit den Namen,

Rechnung-01.02.081 und Rechnung-01.02.08.

Bei 3, 4, u.s.w. gleicher Dateinamen soll dasselbe Prinzip angewandt werden.“

Ich weiß nicht wie ich den Dateinamen um ein Zeichen (Ziffer) erweitern kann.

Jeder Dateinamen soll um eine Zahl beginnende bei eins erweitert werden, solang bis der kopier Vorgang beendet ist.

Konkret:

Bis die Bedingung in der "For-Schleife" nicht mehr zu trifft.

Was ich bisher habe:

for /f "delims=" %%a in ('dir /b/s /O:D C:\steuern\*%2000%?????????????????????.tif ') do ( 

xcopy "%%a" "C:\Dokumente und Einstellungen\name\Eigene Dateien\2000-2003*.tif" /i/c/y 

)
Um was sich handelt steht in dem Namen meines Thema „Batch“. Diese „.bat“ Datei soll auf Windows XP laufen. Vereinfacht könnte man auch sagen: Jeder kopierten Datei muss eine Zahl anghängt werdem beginnend bei "1" endend bei n (Wobei "n" die Anzahl der Schleifen durchläufe ist). Allerdings muss der Dateinamen bestehend bleiben, die Zahl soll nur angehängt werden.
for /f "delims=" %%a in ('dir /b/s /O:D C:\steuern\*%2000%?????????????????????.tif ') do ( 

xcopy "%%a" "C:\Dokumente und Einstellungen\name\Eigene Dateien\2000-

2003*.tif" /i/c/y


>> Hier eine Zeile die dem Dateinamen die Zahl „i“ anhängt. 

Ich hoffe es ist jetzt verständlicher.

Ich bedanke mich schon einmal.

Gruß

  • 1 Monat später...
Geschrieben

Evtl. hilft dir das weiter:

%~i - expands %i removing any surrounding quotes (")

%~fi - expands %i to a fully qualified path name

%~di - expands %i to a drive letter only

%~pi - expands %i to a path only

%~ni - expands %i to a file name only

%~xi - expands %i to a file extension only

%~si - expanded path contains short names only

%~ai - expands %i to file attributes of file

%~ti - expands %i to date/time of file

%~zi - expands %i to size of file

%~$PATH:i - searches the directories listed in the PATH environment variable and expands %i to the fully qualified name of the first one found.

If the environment variable name is not defined or the file is not found by the search, then this modifier expands to the empty string

The modifiers can be combined to get compound results:

%~dpi - expands %i to a drive letter and path only

%~nxi - expands %i to a file name and extension only

%~fsi - expands %i to a full path name with short names only

%~dp$PATH:i - searches the directories listed in the PATH environment variable for %i and expands to the drive letter and path of the first one found.

%~ftzai - expands %i to a DIR like output line

gefunden bei: Batch files - The FOR command: Windows NT 4/Windows 2000 Syntax

In Verbindung mit "&&" sollte da was machbar sein.

Befehl1.cmd && Befehl2.cmd

-> Führe Befehl2.cmd aus, wenn Befehl1.cmd mit Errorlevel 0 beendet wurde.

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...