Dateienamen in Ordnernamen umbenennen
Hallo zusammen
eine frage wie schaffe ich es Dateien im Unterordner in Unterordnernamen umzubenennen?
im Prinzip
V:Test\Variabler Ordner\test.jpg > V:Test\Variabler Ordner\Variabler Ordner.jpg
und bei mehreren Dateien mehr als 1 Datei
V:Test\Variabler Ordner\
Dateien im Variabler Ordner z.B.
test.jpg> Variabler Ordner_a.jpg
testen.jpg> Variabler Ordner_b.jpg
getestet.jpg> Variabler Ordner_c.jpg
test.gif> Variabler Ordner_a.gif
testen.gif> Variabler Ordner_b.gif
Grüße
Spide-25
eine frage wie schaffe ich es Dateien im Unterordner in Unterordnernamen umzubenennen?
im Prinzip
V:Test\Variabler Ordner\test.jpg > V:Test\Variabler Ordner\Variabler Ordner.jpg
und bei mehreren Dateien mehr als 1 Datei
V:Test\Variabler Ordner\
Dateien im Variabler Ordner z.B.
test.jpg> Variabler Ordner_a.jpg
testen.jpg> Variabler Ordner_b.jpg
getestet.jpg> Variabler Ordner_c.jpg
test.gif> Variabler Ordner_a.gif
testen.gif> Variabler Ordner_b.gif
Grüße
Spide-25
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 151181
Url: https://administrator.de/contentid/151181
Ausgedruckt am: 22.11.2024 um 12:11 Uhr
25 Kommentare
Neuester Kommentar
Hi,
da fallen mir spontan 2 Möglichkeiten ein.
1. Rechtsklick umbennen
2. Batch schreiben
Was willst du machen?
Gruß Puntonist
da fallen mir spontan 2 Möglichkeiten ein.
1. Rechtsklick umbennen
2. Batch schreiben
Was willst du machen?
Gruß Puntonist
http://forum.fachinformatiker.de/windows-betriebssysteme/75037-ms-dos-b ...
vielleicht hilft dir das. da kannst du dir die Batch so zusammenbasteln wie du es gern hättest.
vielleicht hilft dir das. da kannst du dir die Batch so zusammenbasteln wie du es gern hättest.
Hallo Spidi-25!
Nicht ganz Deinen Vorgaben entsprechend, aber vielleicht doch passend:
Es wird jeder Unterordner von "V:\Test" durchlaufen und für die Dauer der Verarbeitung mit "
Für jede Datei wird im Unterprogramm "
Ist bereits eine nach dem Ordner benannte Datei des aktuellen Typs vorhanden, muss ein Namenszusatz verwendet werden, wobei sich eine laufende Nummer einfacher hinzufügen lässt als einzelne Buchstaben. Die Nummer wird solange hochgezählt, bis es keine mit dieser Nummer als Zusatz benannte Datei mehr gibt; dann kann umbenannt werden.
Grüße
bastla
[Edit] Überflüssiges "n" in "
Nicht ganz Deinen Vorgaben entsprechend, aber vielleicht doch passend:
@echo off & setlocal
for /d %%i in ("V:\Test\*.*") do (
pushd "%%i"
for /f "delims=" %%a in ('dir /b /a-d') do call :ProcessFile "%%~nxi" "%%a"
popd
)
goto :eof
:ProcessFile
if not exist "%~1%~x2" ren %2 "%~1%~x2" & goto :eof
set /a Zusatz=1
:Loop
set /a Zusatz+=1
if exist "%~1_%Zusatz%%~x2" goto :Loop
ren %2 "%~1_%Zusatz%%~x2"
goto :eof
pushd
" zum aktuellen Verzeichnis gemacht (erleichtert das Vergleichen und Umbenennen, da keine Pfade berücksichtigt werden müssen).Für jede Datei wird im Unterprogramm "
:ProcessFile
" (beim Aufruf wird der Ordnername = neue Dateiname als erster und der alte Dateiname als zweiter Parameter übergeben) zunächst geprüft, ob sie unmittelbar umbenannt werden kann (da eine Datei "Ordnername.Dateityp" noch nicht vorhanden ist) und dies im Fall des Falles auch durchgeführt.Ist bereits eine nach dem Ordner benannte Datei des aktuellen Typs vorhanden, muss ein Namenszusatz verwendet werden, wobei sich eine laufende Nummer einfacher hinzufügen lässt als einzelne Buchstaben. Die Nummer wird solange hochgezählt, bis es keine mit dieser Nummer als Zusatz benannte Datei mehr gibt; dann kann umbenannt werden.
Grüße
bastla
[Edit] Überflüssiges "n" in "
%~n1
" in den Zeilen 15 und 17 entfernt [/Edit]Zitat von @Spidi-25:
V:Test\Variabler Ordner\test.jpg > V:Test\Variabler Ordner\Variabler Ordner.jpg
und bei mehreren Dateien mehr als 1 Datei
V:Test\Variabler Ordner\
Dateien im Variabler Ordner z.B.
test.jpg> Variabler Ordner_a.jpg
testen.jpg> Variabler Ordner_b.jpg
getestet.jpg> Variabler Ordner_c.jpg
test.gif> Variabler Ordner_a.gif
testen.gif> Variabler Ordner_b.gif
V:Test\Variabler Ordner\test.jpg > V:Test\Variabler Ordner\Variabler Ordner.jpg
und bei mehreren Dateien mehr als 1 Datei
V:Test\Variabler Ordner\
Dateien im Variabler Ordner z.B.
test.jpg> Variabler Ordner_a.jpg
testen.jpg> Variabler Ordner_b.jpg
getestet.jpg> Variabler Ordner_c.jpg
test.gif> Variabler Ordner_a.gif
testen.gif> Variabler Ordner_b.gif
Kommt es auf eine "feste Zuordnung" an? Sprich soll "test" durch "a" und getestet durchgehend durch "c" repräsentiert werden?
Na ja ich denk mal das geht auch so...
Mit Batch-Scripting wird das schon ganz schön kompliziert. Machbar klar, aber um einiges schneller gehts mit einem File-Renamer.
Das äußerst feine (Windows!) Tool Bulk Rename Utility kennt die "Option Append Folder Name", da kannst Du entscheiden, ob der Verzeichnisname als Prä- oder Suffix konkanetiert werden soll und Du kannst entscheiden, welches ASCII-Zeichen als Seperator fungieren soll und wie viele vorherige Verzeichnisse mit einbezogen werden.
Klar denkt man jetzt, bestimmt ganz nett, aber jedesmal so ne blöde GUI aufrufen und alles umständlich von Hand setzten...
Da ist es besonders schön, daß es das Tool auch für die Kommandozeile gibt. Heißt dann Bulk Rename Command und kann mit den meisten Funktionen der GUI-Version mithalten.
Wenn Du also in V:Test\Variabler Ordner\ Dateien liegen hast, wird folgendes zu gewünschten Ergebnis führen:
in dem Fall würde sich noch gar nichts ändern, aber Dir wird auf der Kommandozeile angezeigt, wie es sich verändern WÜRDE.
Mit dem zusätzlichen Parameter /EXECUTE wirds dann fertiggeschrieben!
Kurz zur Erklärung(aus der beiliegenden Dokumentation):
Darüberhinaus kennt BRC noch jede Menge weitere Parameter, die in der beiliegenden Dokumentation beschrieben sind.
Da wären z.B.
und das geht gerade so weiter. Für mich eins der besten Rename-Tools unter Windows. Und über Staüelverarbeitung wunderbar steuerbar
Ach eins noch, in meiner Version stand damals in der Dokumentation, es gäbe den Parameter /SORTDIR oder so ähnlich.
Der führte aber immer zu Fehlern. während /SORTBY wunderbar funktioniert, aber nicht in der Dokumentation vorkommt.
Und an die anderen Leser: Ist das Tool bekannt? Sonst mach ich mal ne Anleitung/Tipp daraus...
LG Florian
Mit Batch-Scripting wird das schon ganz schön kompliziert. Machbar klar, aber um einiges schneller gehts mit einem File-Renamer.
Das äußerst feine (Windows!) Tool Bulk Rename Utility kennt die "Option Append Folder Name", da kannst Du entscheiden, ob der Verzeichnisname als Prä- oder Suffix konkanetiert werden soll und Du kannst entscheiden, welches ASCII-Zeichen als Seperator fungieren soll und wie viele vorherige Verzeichnisse mit einbezogen werden.
Klar denkt man jetzt, bestimmt ganz nett, aber jedesmal so ne blöde GUI aufrufen und alles umständlich von Hand setzten...
Da ist es besonders schön, daß es das Tool auch für die Kommandozeile gibt. Heißt dann Bulk Rename Command und kann mit den meisten Funktionen der GUI-Version mithalten.
Wenn Du also in V:Test\Variabler Ordner\ Dateien liegen hast, wird folgendes zu gewünschten Ergebnis führen:
brc32 /DIR:V:Test\Variabler Ordner /FIXEDNAME: /APPENDFOLDER:P::1 /AUTONUMBER:1:1:S:_:38:1 /SORTBY:C
Mit dem zusätzlichen Parameter /EXECUTE wirds dann fertiggeschrieben!
Kurz zur Erklärung(aus der beiliegenden Dokumentation):
/SORTBY:Mode - Specify the sort-sequence. Mode is as follows:
N -Filename (the default)
C -Changed date
M - Modified date
A -Accessed date
S - Size (n/a for folders)
R -Random
(ich hab oben M genommen, da ich davon ausging, dass "getestet" nach "testen" nach "test" erstellt wurde und Dir die zuordnung wichtig ist.)
/APPENDFOLDER:Mode:Separator:Levels - Append the parent folder name(s) to the name. The
parameters are as follows:
Mode - P refix, S uffix, or B oth
Separator - the text to place between the name and the folder text. Can be blank.
Levels - How many levels of folders to append (e.g. 1 would be the parent, 2 would be the
parent and its parent).
/AUTONUMBER:Start:Increment:Mode:Separator:Base:Pad - this allows you to append an incrementing number to the >filename. The parameters are as follows:
Start - the number at which to begin
Increment - how many to increment by each time
Mode - P refix, S uffix, or B oth
Separator - the text to place between the name and the autonumber text. Can be blank.
Base - The base number to use. Normally 10, but can be 2 (binary) to 36. There are also two
special bases, 37 and 38, which will cause only letters A-Z to be used.
Pad - you can choose to pad the autonumber. e.g. a pad value of 3 would result in 001, 002,
003, 004 etc.
Da wären z.B.
/RECURSIVE | Um rekursiv Unterverzeichnisse einzubeziehen |
/PATTERN | z.B. *.tiff |
/IGNOREFILEX | wenn man auch die Dateierweiterung verändern will) |
/INCLH | Für versteckte DAteien und Ordner |
/INCLS | Für Systemdateien |
/CHANGECASE | |
/REGEXP | zur Verwendung regulärer Ausdrücke |
/NODUP | um gleichlautende Namen zu verhindern |
/APPENDDATE | Datum und Zeit |
und das geht gerade so weiter. Für mich eins der besten Rename-Tools unter Windows. Und über Staüelverarbeitung wunderbar steuerbar
Ach eins noch, in meiner Version stand damals in der Dokumentation, es gäbe den Parameter /SORTDIR oder so ähnlich.
Der führte aber immer zu Fehlern. während /SORTBY wunderbar funktioniert, aber nicht in der Dokumentation vorkommt.
Und an die anderen Leser: Ist das Tool bekannt? Sonst mach ich mal ne Anleitung/Tipp daraus...
LG Florian
Zitat von @Spidi-25:
wenn sich nur eine *.jpg Datei im Ordner befindet, dann so umbenennen:
V:Test\Variabler Ordner\test.jpg > V:Test\Variabler Ordner\Variabler Ordner.jpg
und bei mehreren Dateien, mehr als 1 Datei
V:Test\Variabler Ordner\
Variabler Ordner_1.jpg
Variabler Ordner_2.jpg
wenn sich nur eine *.jpg Datei im Ordner befindet, dann so umbenennen:
V:Test\Variabler Ordner\test.jpg > V:Test\Variabler Ordner\Variabler Ordner.jpg
und bei mehreren Dateien, mehr als 1 Datei
V:Test\Variabler Ordner\
Variabler Ordner_1.jpg
Variabler Ordner_2.jpg
Und warum das? Konsistent is das ja nicht gearde, oder ist das einzelne Bild grundlegend anders als ein nummeriertes Bild? Ich meine, wenn Du dann wenigstens folgendes wölltest.
V:Test\Variabler Ordner\
Variabler Ordner.jpg
Variabler Ordner_1.jpg
...
Variabler Ordner.jpg
Variabler Ordner_1.jpg
...
Für den Fall, dass da eine Logik dahintersteckt, wäre es auch angebracht, sie den Leuten mitzuteilen. Am besten anhand eines spezifischen Szenarios.
@Florian.Sauber
Konsistent finde ich Deinen Vorschlag auch nicht unbedingt - das wäre ja dann eher
Grüße
bastla
Konsistent finde ich Deinen Vorschlag auch nicht unbedingt - das wäre ja dann eher
V:Test\Variabler Ordner\
Variabler Ordner_0.jpg
Variabler Ordner_1.jpg
...
Variabler Ordner_0.jpg
Variabler Ordner_1.jpg
...
Grüße
bastla
@bastla
Klar,da hast Du innerhalb des Verzeichnisses mit n Dateien schon recht.
Ich meinte mit Konsistenz aber doch die Widerspruchsfreiheit über die einzelnen Verzeichnisse hinweg. Ob das zusätzlich inkrementelle Unterscheidungsmerkmal dann bei 0, 1, a/A oder sonstwas anfängt, ist dann ja zweitranging. Vorausgesetzt eben, er will Verzeichnisse, die Dateien ohne Alphanumerische Suffixe enthalten.
Ich würde im -Gegensatz zu seinem Bsp.- auch die alleinstehende Datei "VariablerOrdner_0.jpg" (oder "VariablerOrdner_X.jpg") nennen. Und da treffen wir uns ja dann bestimmt wieder.
Spätestens aber bei
Grüße Flo
Echt schön hier im Forum
Klar,da hast Du innerhalb des Verzeichnisses mit n Dateien schon recht.
Ich meinte mit Konsistenz aber doch die Widerspruchsfreiheit über die einzelnen Verzeichnisse hinweg. Ob das zusätzlich inkrementelle Unterscheidungsmerkmal dann bei 0, 1, a/A oder sonstwas anfängt, ist dann ja zweitranging. Vorausgesetzt eben, er will Verzeichnisse, die Dateien ohne Alphanumerische Suffixe enthalten.
Ich würde im -Gegensatz zu seinem Bsp.- auch die alleinstehende Datei "VariablerOrdner_0.jpg" (oder "VariablerOrdner_X.jpg") nennen. Und da treffen wir uns ja dann bestimmt wieder.
Spätestens aber bei
Zitat von @bastla:
Die gewünschte Unterscheidung ist möglich, aber vergleichsweise aufwändig - insofern würde mich auch der Sinn
dahinter interessieren ...
Die gewünschte Unterscheidung ist möglich, aber vergleichsweise aufwändig - insofern würde mich auch der Sinn
dahinter interessieren ...
Grüße Flo
Echt schön hier im Forum
@Florian.Sauber
War ja gar nicht (sooo) ernst gemeint ...
Grüße
bastla
War ja gar nicht (sooo) ernst gemeint ...
Echt schön hier im Forum
Na dann (leicht verspätet) noch ein "Willkommen" ... Grüße
bastla
Keine Angst, hatte ich auch so verstanden. Wollte es nur für Spidi "etwas" nachvollziehbarer machen.
Na dann (leicht verspätet) noch ein "Willkommen" ...
Danke, freu mich schon auf mehr
Grüße Flo
Hallo Spidi-25!
Falls Du generell einen Zusatz "_#" verwenden willst (wodurch dann eben auch einzelne Dateien auf "Variabler Ordner_1.jpg" umbenannt würden), dann einfach:
Bei einer größeren Anzahl von Dateien würde ich noch etwas formatieren - 2-stellig zB (als Ersatz der Zeilen 9ff):
Grüße
bastla
Falls Du generell einen Zusatz "_#" verwenden willst (wodurch dann eben auch einzelne Dateien auf "Variabler Ordner_1.jpg" umbenannt würden), dann einfach:
@echo off & setlocal
for /d %%i in ("V:\Test\*.*") do (
pushd "%%i"
for /f "delims=" %%a in ('dir /b /a-d') do call :ProcessFile "%%~nxi" "%%a"
popd
)
goto :eof
:ProcessFile
set /a Zusatz=0
:Loop
set /a Zusatz+=1
if exist "%~1_%Zusatz%%~x2" goto :Loop
ren %2 "%~1_%Zusatz%%~x2"
goto :eof
:ProcessFile
set /a Zusatz=10000
:Loop
set /a Zusatz+=1
if exist "%~1_%Zusatz:~-2%%~x2" goto :Loop
ren %2 "%~1_%Zusatz:~-2%%~x2"
goto :eof
bastla
Nee, war mein Fehler!
Grüße Flo
Hallo Spidi-25!
Ob Dein Ansatz richtig (oder zumindest funktionsfähig ) ist, sollten eigentlich Deine Tests schon gezeigt haben - die Zeilen 3 und 5 sind allerdings entbehrlich (und eine ganz gewöhnliche "
Falls Du Erweiterungen der Art "001", "002", etc (also jeweils 3 Ziffern) verarbeiten willst, kannst Du auf > 1 etwa so prüfen:
Es wird zunächst untersucht, ob die Erweiterung nur aus Ziffern besteht und nur in diesem Fall der Vergleich mit dem Wert 1 vorgenommen.
Warum das "Kunststück" mit dem Tausender? Wenn eine Zahl mit 0 beginnt, wird diese in Batch als Oktalzahl interpretiert - was solange nix ausmacht, solange keine 8 und 9 (es gibt ja nur die Ziffern 0 bis 7 im Oktalsystem) vorkommen. Das Voranstellen der "1" sorgt dafür, dass die Zahl nicht mit 0 beginnt, was allerdings bei dreistelligen Zahlen bewirkt, dass die 1 den Wert 1000 repräsentiert - deshalb muss dann wieder 1000 subtrahiert werden.
Grüße
bastla
[Edit] Entfernen des Punktes am Beginn der Erweiterung ergänzt [/Edit]
Ob Dein Ansatz richtig (oder zumindest funktionsfähig ) ist, sollten eigentlich Deine Tests schon gezeigt haben - die Zeilen 3 und 5 sind allerdings entbehrlich (und eine ganz gewöhnliche "
for
"-Schleife täte es auch) ...gibt es bei if exist nicht die Möglichkeit wen Deiteierweiterung größer als 1 dann goto nach?
Mir ist die Frage nicht wirklich klar, aber Du kannst ja jeden Dateinamen zerlegen und dann die Teile mit "if
" untersuchen - und wenn tatsächlich die Erweiterung gemeint wäre, erhältst Du diese (allerdings mit einem Punkt vorweg) mitfor %%i in (Datei.Typ) do set "Erw=%%~xi"
for %%i in (Datei.009) do set "Erw=%%~xi"
set "IstZahl=true"
for /f "delims=.0123456789" %%a in ("%Erw%") do set "IstZahl="
if not defined IstZahl goto :KeineZahl
set /a Wert=1%Erw:~1%-1000
if %Wert% gtr 1 goto :Label
Warum das "Kunststück" mit dem Tausender? Wenn eine Zahl mit 0 beginnt, wird diese in Batch als Oktalzahl interpretiert - was solange nix ausmacht, solange keine 8 und 9 (es gibt ja nur die Ziffern 0 bis 7 im Oktalsystem) vorkommen. Das Voranstellen der "1" sorgt dafür, dass die Zahl nicht mit 0 beginnt, was allerdings bei dreistelligen Zahlen bewirkt, dass die 1 den Wert 1000 repräsentiert - deshalb muss dann wieder 1000 subtrahiert werden.
Grüße
bastla
[Edit] Entfernen des Punktes am Beginn der Erweiterung ergänzt [/Edit]
Liebe Programmierer!
Auf der Suche nach der Möglichkeit Dateinamen in die jeweiligen Ordnernamen einer größeren Ordnerstruktur per Batch umzubenennen, bin ich auf Eure interessanten Beiträge gestoßen, und ich möchte mich für deren Veröffentlichung bedanken, denn dies hat mir sehr weitergeholfen und enorm Zeit gespart.
Nun habe ich mich extra angemeldet, weil ich so sehr hoffe, dass Ihr mir mit noch einem Sonderwunsch helfen könnt.
Ich möchte nämlich am liebsten die Dateinamen beibehalten und den Ordnernamen entweder voransetzen oder dranhängen:
Die Dateien Bild.bmp und Ton.wav sind im Ordner X:\Beispiel\Muster und würden nachher zB.MusterBild.bmp und MusterTon.wav heißen.
Ich würde mich riesig freuen, wenn mir da bitte jemand weiterhelfen kann, denn ich habe privat tausende Daten in hunderten Ordnern, die ich zu verarbeiten habe.
Beste Grüße
Suzi
Auf der Suche nach der Möglichkeit Dateinamen in die jeweiligen Ordnernamen einer größeren Ordnerstruktur per Batch umzubenennen, bin ich auf Eure interessanten Beiträge gestoßen, und ich möchte mich für deren Veröffentlichung bedanken, denn dies hat mir sehr weitergeholfen und enorm Zeit gespart.
Nun habe ich mich extra angemeldet, weil ich so sehr hoffe, dass Ihr mir mit noch einem Sonderwunsch helfen könnt.
Ich möchte nämlich am liebsten die Dateinamen beibehalten und den Ordnernamen entweder voransetzen oder dranhängen:
Die Dateien Bild.bmp und Ton.wav sind im Ordner X:\Beispiel\Muster und würden nachher zB.MusterBild.bmp und MusterTon.wav heißen.
Ich würde mich riesig freuen, wenn mir da bitte jemand weiterhelfen kann, denn ich habe privat tausende Daten in hunderten Ordnern, die ich zu verarbeiten habe.
Beste Grüße
Suzi
Moin Suzi10,
willkommen im Forum.
Es würde mich freuen, wenn du aus deiner Triitbrettfrage einen eigenen Beitrag machst - dieser hier ist eigentlich schon abgehakt.
Als Schnellschuss zu deiner Frage eine ungetestete Antwort.
Es lässt sich (wenn es denn eine einmalige Aktion ist) eigentlich schnell vom CMD-Prompt aus abkaspern.
Beispiel: Wenn ich in meinem Unterverzeichnis "Y:\Eigene Dateien\Download" alle Dateien der Konvention "p*.zip" umbenamsen wollte in "Download_p*.zip", dann würde diese Zeile der Anforderung genügen.
wobei ein "@echo ren.." statt eines "Ren ..." dem gefahrlosen Testen dient.
Anmerkung: Ich empfehle dringendst, diese Umbenamserei auch wirklich vom CMD-Prompt nach obigem Muster (einmal mit "echo ren", danach ggf. mit "ren" ) einmalig durchzuführen.
Denn: wenn es unbeaufsichtigt im Batch läuft, dann heißt die Datei
Jedenfalls wenn keine entsprechende Prüfung erfolgt.
Grüße
Biber
willkommen im Forum.
Es würde mich freuen, wenn du aus deiner Triitbrettfrage einen eigenen Beitrag machst - dieser hier ist eigentlich schon abgehakt.
Als Schnellschuss zu deiner Frage eine ungetestete Antwort.
Es lässt sich (wenn es denn eine einmalige Aktion ist) eigentlich schnell vom CMD-Prompt aus abkaspern.
Beispiel: Wenn ich in meinem Unterverzeichnis "Y:\Eigene Dateien\Download" alle Dateien der Konvention "p*.zip" umbenamsen wollte in "Download_p*.zip", dann würde diese Zeile der Anforderung genügen.
>for /d %o in ("Y:\Eigene Dateien\Download") do @for %i in ("%~o\p*.zip") do @echo Ren "%i" "%~nxo_%~nxi"
Ren "Y:\Eigene Dateien\Download\persbackup4.zip" "Download_persbackup4.zip"
Ren "Y:\Eigene Dateien\Download\plsqleditor_0.4.9.zip" "Download_plsqleditor_0.4.9.zip"
Anmerkung: Ich empfehle dringendst, diese Umbenamserei auch wirklich vom CMD-Prompt nach obigem Muster (einmal mit "echo ren", danach ggf. mit "ren" ) einmalig durchzuführen.
Denn: wenn es unbeaufsichtigt im Batch läuft, dann heißt die Datei
- nach dem 1 Lauf "Download_persbackup4.zip"
- nach dem 2 Lauf "Download_Download_persbackup4.zip"
- nach dem 3 Lauf "Download_Download_Download_persbackup4.zip"
Jedenfalls wenn keine entsprechende Prüfung erfolgt.
Grüße
Biber
Oh pardon, Biber, das Häkchen hatte ich gar nicht bemerkt...
Aber Danke für Deine schnelle Antwort
Wenn ich also unter X:\Beispiel\ etliche Unterordner (Muster1, Muster2, Muster3, ... mit Dateien habe, sähe bastla's in meinem Fall so aus, um sämtliche Namen an deren Ordner anzupassen:
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
@echo off & setlocal
for /d %%i in ("X:\Beispiel\\*.*") do (
pushd "%%i"
for /f "delims=" %%a in ('dir /b /a-d') do call :ProcessFile "%%~nxi" "%%a"
popd
)
goto :eof
:ProcessFile
if not exist "%~1%~x2" ren %2 "%~1%~x2" & goto :eof
set /a Zusatz=1
:Loop
set /a Zusatz+=1
if exist "%~1_%Zusatz%%~x2" goto :Loop
ren %2 "%~1_%Zusatz%%~x2"
goto :eof
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Um jetzt also die bestehenden Dateinamen mit den jew.Ordnernamen zu ergänzen, könnte ich Dein Skript hernehmen? Aber das sieht für mich so aus, dass dann alle Dateinamen und auch deren Endung (ungefähr) gleich sein müssten?
In meinem Fall haben die Dateien aber alle unterschiedliche Namen und Endungen.
Wie müsste ich in diesem Fall vorgehen?
Liebe Grüße zurück!
Aber Danke für Deine schnelle Antwort
Wenn ich also unter X:\Beispiel\ etliche Unterordner (Muster1, Muster2, Muster3, ... mit Dateien habe, sähe bastla's in meinem Fall so aus, um sämtliche Namen an deren Ordner anzupassen:
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
@echo off & setlocal
for /d %%i in ("X:\Beispiel\\*.*") do (
pushd "%%i"
for /f "delims=" %%a in ('dir /b /a-d') do call :ProcessFile "%%~nxi" "%%a"
popd
)
goto :eof
:ProcessFile
if not exist "%~1%~x2" ren %2 "%~1%~x2" & goto :eof
set /a Zusatz=1
:Loop
set /a Zusatz+=1
if exist "%~1_%Zusatz%%~x2" goto :Loop
ren %2 "%~1_%Zusatz%%~x2"
goto :eof
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Um jetzt also die bestehenden Dateinamen mit den jew.Ordnernamen zu ergänzen, könnte ich Dein Skript hernehmen? Aber das sieht für mich so aus, dass dann alle Dateinamen und auch deren Endung (ungefähr) gleich sein müssten?
In meinem Fall haben die Dateien aber alle unterschiedliche Namen und Endungen.
Wie müsste ich in diesem Fall vorgehen?
Liebe Grüße zurück!