per batch dateien zählen, umbenennen, verschieben?
Hallo, ich kann zwar etwas programmieren, tue mir mit batch aber etwas schwer. Bitte seid so nett und helft mir bei meinem Problem.
Ich habe txt-Dateien in pfad1 und pfad2.
Ich würde gerne eine Batch-Datei haben, die in Pfad2 liegt und folgendes tut:
Ich habe txt-dateien in pfad1. Diese sollen gezählt werden --> anzdat ist ermittelt.
Nun sollen in pfad2 die txt-dateien der reihe nach umbenannt werden und zwar beginnend mit anzdat+1.
Diese umbenannten dateien sollen nun nach pfad1 verschoben werden.
pfad1: D:\Daten\aktuell\BoogieBoardBatchSync\abarbeiten
pfad2: D:\Daten\aktuell\BoogieBoardBatchSync\temp
Leider beherrsche ich batch nicht gut und kann nichts dazu beitragen. Ich möchte die batch-datei deswegen verwenden, da sie direkt im Windows-Explorer ausführbar ist.
Vielen Dank für die Hilfe im Voraus!!
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"
)
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
Gib mal an der Konsole ein:
forfiles /?
und schau dir die Optionen an.
@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