per batch dateien zählen, umbenennen, verschieben?

2 Antworten

Verzögerte Zuweisung einschalten

mit For (oder ForFiles - s. Antwort von Roderic) die Dateien im Zielverzeichnis zählen

Entsprechend über die Dateien im Quellverzeichnis iterieren und dabei den Zähler weiter hochzählen

-----

detaillierter:

setlocal enabledelayedexpansion
set /a zaehler = 0
cd zielverzeichnis
for %%A in (*) do set /a zaehler+=
cd quellverzeichnis
for %%A in (*) do (
set /a zaehler+=1
copy "%%A" "zielverzeichnis\%zaehler%.txt"
)
Woher ich das weiß:Berufserfahrung – Software-Entwickler

schoenerbogen 
Beitragsersteller
 02.10.2017, 18:03
Hallo, danke für die sehr gute Antwort. Leider bekomme ich es nicht hin...

@echo off
setlocal enabledelayedexpansion

set /a zaehler = 0

cd D:\Daten\aktuell\BoogieBoardBatchSync\abarbeiten
for %%i in (*.txt) do set /a zaehler+=1

cd D:\Daten\aktuell\BoogieBoardBatchSync\temp
for %%i in (*.txt) do (
set /a zaehler+=1
copy "%%i" "D:\Daten\aktuell\BoogieBoardBatchSync\abarbeiten\%zaehler%.txt"
)
pause

Ich habe im Ordner "abarbeiten" 4 Textdateien und die Batchdatei. Im Ordner "temp" habe ich 3 Textdateien.

Ich bekomme 3x die Meldung: 1 Datei kopiert. Aber es kommt nur eine txt-Datei im Ordner "abarbeiten" hinzu.

Vielleicht wären Sie so nett und würden noch mal drüberschauen, weil ich mir wie gesagt mit der Batch-Sprache recht schwer tue. Ich programmiere lieber Excel-Makros. Ich habe mich für das Problem für Batch entschieden, da man es direkt im Explorer ausführen kann. Ich würde mich sehr freuen wenn Sie mir weiterhelfen könnten.

Viele Grüße, schoenerbogen

PWolff  02.10.2017, 18:50
@schoenerbogen

Vermutlich habe ich da was übersehen, tut mir leid. Um die Variable zaehler müssen Ausrufezeichen statt Prozentzeichen, damit sie

copy "%%i" "D:\Daten\aktuell\BoogieBoardBatchSync\abarbeiten\!zaehler!.txt" 

aber ich probiere es vorsichtshalber mal aus

PWolff  02.10.2017, 19:07
@PWolff

ja, mit ! statt % funktioniert es.

(Blöder Flüchtigkeitsfehler)

Gib mal an der Konsole ein:

forfiles /?

und schau dir die Optionen an.