Batch-Datei zum Umbenennen von ca.400 Dateien

Hallo,

habe ein konkretes Problem:
Ca. 300-400 Dateien eines Quellordners sollen umbenannt und in einen Zielordner kopiert werden.
Diese Aufgabe wiederholt sich von Zeit zu Zeit. Deshalb will ich dieses mit einer Batch-Datei im cmd-Fenster machen.
Habe aber keine Ahnung wie.

Vielen Dank

L.

so geheimnisvoll…
Hi Lima,

schön wäre es, wenn Du etwas mehr Butter bei die Fische tust:
-Name der Dateien im original
-gewünschter Name bei Kopie
-sollen die kopiert oder doch verschoben werden?
-was geschieht mit Doubletten?

LG
Ce

Ca. 300-400 Dateien eines Quellordners sollen umbenannt und in
einen Zielordner kopiert werden.

Umbenennen: rename /?
Kopieren: copy /?

Mehr kann man auf Grund der dünnen Fakten nicht antworten.

S.J.

Moin,

da Du keine weiteren Angaben machst:
Irfanview kann das http://www.irfanview.de/
Wozu als mit der Kommandozeile rumhantieren?

Gruss Jakob

Hallo,
Ihr enttäuscht mich nun aber ein wenig.
Wenn ich von ca 400 Dateien aus einem Quellordner rede, glaubt Ihr doch nicht, ich will diese alle händisch umbenennen.
Und wenn ich von einem Script rede, dann bestimmt deshalb, da mich Aufgaben dieses Typs in Zukunft öfters erfreuen werden.
Also ich will ca 400 Dateien aus einem Quellordner (ich kann nicht genau sagen wie viele Dateien es immer sein werden und wie sie genau heißen) mittels script in einer mir bekannten Weise ummodeln und in einen Zielordner schreiben.
Es wird mich also öfters eine wiederverwertbare Aufgabe der Form: „x Dateien aus einem Quellordner - Script zum ummodeln xyz - x Dateien1 im Zielordner“ erfreuen.
Problem im Script:
Wie bekomme ich eine unbestimmte Zahl (alle) Dateien eines Quellordnders innerhalb eines Scripts als Parameter in eine BefehlsSchleife?

Na dann schon mal Dank im Voraus
L.

Hallo,
Ihr enttäuscht mich nun aber ein wenig.
Wenn ich von ca 400 Dateien aus einem Quellordner rede, glaubt
Ihr doch nicht, ich will diese alle händisch umbenennen.
Und wenn ich von einem Script rede, dann bestimmt deshalb, da
mich Aufgaben dieses Typs in Zukunft öfters erfreuen werden.
Also ich will ca 400 Dateien aus einem Quellordner (ich kann
nicht genau sagen wie viele Dateien es immer sein werden und
wie sie genau heißen) mittels script in einer mir bekannten
Weise ummodeln und in einen Zielordner schreiben.

Hallo Lima,
warum soll es unbedingt ein Script sein?
Jakob hat Dir IrfanView genannt, mit dem Du wirklich sehr komfortabel Dateien in einer Batch umbenennen kannst. Dabei wird nur das Quellverzeichnis angegeben und über „alles hinzufügen“ werden eben alle im Verzeichnis vorhandene Dateien in die Umbenennung einbezogen.

Gruß Fritz

unverschämt…
Lima…

was soll der Skript tun? Was intelligentes, fürchte ich… ABER WAS???
Und wenn Du meinst, dass Dir geholfen wird, während Du noch nicht mal preisgibst, was das olle Skript denn können soll und daher sowieso alles besser weißt:

Machs Dir selbst!

LG
Ce

Hallo Lima,

Ihr enttäuscht mich nun aber ein wenig.

Naja, das beruht aber ein wenig auf Gegenseitigkeit…

Wie bekomme ich eine unbestimmte Zahl (alle) Dateien eines
Quellordnders innerhalb eines Scripts als Parameter in eine
BefehlsSchleife?

…weil deine Angaben einfach zu knapp sind.
Das Problem ist deine „unbestimmte Zahl Dateien eines Quellordners“. Was soll das heissen? Gibt es eine Regel dafür, welche Dateien kopiert werden sollen?
Das zweite Problem ist das umbenennen. Gibt es auch dafür eine Regelmäßigkeit (z.B. allen kopierten Daten soll noch die Endung .bak oder das Datum angehängt werden?)
Ohne nähere Angaben dazu kann man nur ganz allgemein z.B. auf xcopy
http://www.microsoft.com/resources/documentation/win…
oder robocopy
http://www.wintotal.de/artikel/artikel-2007/91.html
verweisen.
Und dann, muß es wie in der Titelfrage hiess, unbedingt batch sein, oder ist auch, wie dann innerhalb der Anfrage erwähnt, eine Skriptsprache (Perl, Ruby, …) möglich?

Viele Grüße
Marvin

nachden ich nun die ernsthafen Hilfeversuche aus dem Entrüstungssturm der Antworten herausgefiltert habe (die jenigen, denen meine Frage nicht gefällt, brauchen sich ja nicht weiter ander Diskussion beteidigen) möchte ich dankend antworten.
Warum script? Der Rechner auf dem es läuft unterliegt dem Medizinproduktegesetzt und 3Party-Installationen sind nicht erlaubt, daher dieser altertümliche Batch-Ansatz. Die eigentliche Dateioperation möchte ich aus Datenschutzgründen nicht preisgeben (bitte um Verständnis) Daher als Operator-Beispiel die Umbenennen-Funktion.
In meiner Frage geht es mir allgemein um das Handling einer Loop mit Parametern!

MfG u.DiV
L.

Hallo Lima,

Die
eigentliche Dateioperation möchte ich aus Datenschutzgründen
nicht preisgeben (bitte um Verständnis) Daher als
Operator-Beispiel die Umbenennen-Funktion.

Das heisst, es geht gar nicht um das Umbenennen? Diese Geheimhaltung macht es aber auch nicht leichter, eine Lösung anzudeuten. Lässt sich das Problem nicht irgendwie abstrahieren, ohne gleich die Geheimhaltung zu verletzen?

In meiner Frage geht es mir allgemein um das Handling einer
Loop mit Parametern!

Hm, das allgemeine Handling von Parametern ist dir aber bekannt?

@echo off
@FOR %%A IN (%\*) DO (
 echo %%A
)

Das als schleife.bat abgespeichert und so aufgerufen:

schleife.bat alpha beta gamma

würde dann das ausgeben:

alpha
beta
gamma

Das ist noch nicht sehr hilfreich, aber wenn Du statt echo einen copy-Befehl einsetzt, sieht es schon viel besser aus.
Hat nur den Schönheitsfehler, daß Du natürlich nicht 400 Dateinamen-Parameter einsetzen kannst, zumindest nicht von Hand. Ganz abgesehen von der Frage, ob eine batch-Datei 400 Parameter verdaut, was ich jetzt nicht weiss (20 funktionierten noch).
Bliebe der Ausweg, diese Dateinamen entweder automatisiert in eine List-Datei zu schreiben und nur den Dateinamen als Parameter zu übergeben. Das Batch-File übernimmt dann das zeilenweise Auslesen der List-Datei (in jeder Zeile steht der Name einer zu verarbeitenden Datei).
Je nachdem kann man sich das auch sparen und setzt den Befehl, der die Listdatei erzeugt

befehl \> List-Datei

direkt in eine FOR-Schleife ein.
Da die FOR-Schleife aber mit ihren vielen möglichen Optionen sehr komplex ist, höre ich hier auf und verweise auf diese Anleitungen:
http://www.administrator.de/Tutorial_zur_FOR-Schleif…
da speziell der Parameter /F und das Beispiel 12, in dem gezeigt wird, wie man aus einer Konfigurationsdatei etwas ausliest um es dann Batchvariablen zuzuweisen.

http://www.axel-hahn.de/axel/page_compi/bat_wincomma…
auch hier kann das Beispiel „eine Textdatei parsen“ eventuell für dich interessant sein.
Für das kurz erwähnte einbauen eines Befehls in eine FOR-Schleife gibt es in beiden Tutorials auch Beispiele.

Ob dir das nun überhaupt etwas hilft, ich weiss es wirklich nicht.

Viele Grüße
Marvin

Moin,

Problem im Script:
Wie bekomme ich eine unbestimmte Zahl (alle) Dateien eines
Quellordnders innerhalb eines Scripts als Parameter in eine
BefehlsSchleife?

Batch 1 (haupt.cmd):

@echo off
for %%a in (\*.\*) do call ummodel %%a

Batch 2 (ummodel.cmd):

@echo off
copy %1 
del %1

In Batch 2 kannst Du im Prinzip dann alle Umformungen reinschreiben, die Du Dir wünscht. Mit etwas Arbeit kann man das Ganze auch in eine einzige Batch-Datei packen, aber so ist es quick-and-dirty.

Im übrigen: http://technet.microsoft.com/de-DE/scriptcenter/

Gruß
Stefan

Geheime Information

Warum script? Der Rechner auf dem es läuft unterliegt dem
Medizinproduktegesetzt und 3Party-Installationen sind nicht
erlaubt, daher dieser altertümliche Batch-Ansatz.

Hallo Lima,
wenn Du uns das gleich gesagt hättest,
hättest Du Dir Deine Entrüstung

nachden ich nun die ernsthafen Hilfeversuche aus dem
Entrüstungssturm der Antworten herausgefiltert habe (die
jenigen, denen meine Frage nicht gefällt, brauchen sich ja
nicht weiter ander Diskussion beteidigen) möchte ich dankend
antworten.

sparen können!
Gruß vom Geographen

1 Like