per batch dateien zählen, umbenennen, verschieben?

...komplette Frage anzeigen

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"
)
Antwort bewerten Vielen Dank für Deine Bewertung
schoenerbogen 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

0
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

1
PWolff 02.10.2017, 19:07
@PWolff

ja, mit ! statt % funktioniert es.

(Blöder Flüchtigkeitsfehler)

1

Gib mal an der Konsole ein:

forfiles /?

und schau dir die Optionen an.

Antwort bewerten Vielen Dank für Deine Bewertung

Was möchtest Du wissen?