Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Dateienamen in Ordnernamen umbenennen

Frage Entwicklung Batch & Shell

Mitglied: Spidi-25

Spidi-25 (Level 1) - Jetzt verbinden

16.09.2010, aktualisiert 14:49 Uhr, 6192 Aufrufe, 25 Kommentare

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
Mitglied: 93259
16.09.2010 um 14:51 Uhr
Hi,

da fallen mir spontan 2 Möglichkeiten ein.
1. Rechtsklick umbennen
2. Batch schreiben

Was willst du machen?

Gruß Puntonist
Bitte warten ..
Mitglied: BitmeIO101
16.09.2010 um 15:03 Uhr
Versuch es mal mit Total Commander. Da hast du ein Mehrfach-Umbenenntool bei.
Bitte warten ..
Mitglied: Spidi-25
16.09.2010 um 15:36 Uhr
Hallo Puntonist

Per Batch den sonst hätte ich nicht bei Batch & Shell die Frage gestellt.

Grüße
Spidi-25
Bitte warten ..
Mitglied: Spidi-25
16.09.2010 um 15:38 Uhr
Das kenne ich auch schon aber dieser Ablauf kommt fast täglich und soll nach einem anderen Batch ablaufen!
Bitte warten ..
Mitglied: 93259
16.09.2010 um 15:46 Uhr
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.
Bitte warten ..
Mitglied: bastla
16.09.2010 um 21:23 Uhr
Hallo Spidi-25!

Nicht ganz Deinen Vorgaben entsprechend, aber vielleicht doch passend:
01.
@echo off & setlocal 
02.
for /d %%i in ("V:\Test\*.*") do ( 
03.
    pushd "%%i" 
04.
    for /f "delims=" %%a in ('dir /b /a-d') do call :ProcessFile "%%~nxi" "%%a" 
05.
    popd 
06.
07.
goto :eof 
08.
 
09.
:ProcessFile 
10.
if not exist "%~1%~x2" ren %2 "%~1%~x2" & goto :eof 
11.
 
12.
set /a Zusatz=1 
13.
:Loop 
14.
set /a Zusatz+=1 
15.
if exist "%~1_%Zusatz%%~x2" goto :Loop 
16.
 
17.
ren %2 "%~1_%Zusatz%%~x2" 
18.
goto :eof
Es wird jeder Unterordner von "V:\Test" durchlaufen und für die Dauer der Verarbeitung mit "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]
Bitte warten ..
Mitglied: Florian.Sauber
16.09.2010 um 22:18 Uhr
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

Kommt es auf eine "feste Zuordnung" an? Sprich soll "test" durch "a" und getestet durchgehend durch "c" repräsentiert werden?
Bitte warten ..
Mitglied: Florian.Sauber
16.09.2010 um 23:14 Uhr
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:
brc32 /DIR:V:Test\Variabler Ordner /FIXEDNAME: /APPENDFOLDER:P::1 /AUTONUMBER:1:1:S:_:38:1 /SORTBY:C
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):
/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.
Darüberhinaus kennt BRC noch jede Menge weitere Parameter, die in der beiliegenden Dokumentation beschrieben sind.
Da wären z.B.
/RECURSIVEUm rekursiv Unterverzeichnisse einzubeziehen
/PATTERNz.B. *.tiff
/IGNOREFILEXwenn man auch die Dateierweiterung verändern will)
/INCLHFür versteckte DAteien und Ordner
/INCLSFür Systemdateien
/CHANGECASE
/REGEXPzur Verwendung regulärer Ausdrücke
/NODUPum 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
Bitte warten ..
Mitglied: Spidi-25
17.09.2010 um 12:56 Uhr
@bastla

funktioniert so weit gut komm auch mit der Nummerierung klar, nur

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

@Florian.Sauber
Deinen Beitrag werde ich übers Wochenende verdauen.

Grüße
Spidi-25
Bitte warten ..
Mitglied: Florian.Sauber
17.09.2010 um 14:36 Uhr
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

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
...

Für den Fall, dass da eine Logik dahintersteckt, wäre es auch angebracht, sie den Leuten mitzuteilen. Am besten anhand eines spezifischen Szenarios.
Bitte warten ..
Mitglied: bastla
17.09.2010 um 15:19 Uhr
Hallo Spidi-25!

Die gewünschte Unterscheidung ist möglich, aber vergleichsweise aufwändig - insofern würde mich auch der Sinn dahinter interessieren ...

Grüße
bastla
Bitte warten ..
Mitglied: bastla
17.09.2010 um 15:21 Uhr
@Florian.Sauber
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
...


Grüße
bastla
Bitte warten ..
Mitglied: Florian.Sauber
17.09.2010 um 16:52 Uhr
@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
Zitat von bastla:
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
Bitte warten ..
Mitglied: bastla
17.09.2010 um 17:01 Uhr
@Florian.Sauber
War ja gar nicht (sooo) ernst gemeint ...

Echt schön hier im Forum
Na dann (leicht verspätet) noch ein "Willkommen" ...

Grüße
bastla
Bitte warten ..
Mitglied: Florian.Sauber
17.09.2010 um 17:33 Uhr
Zitat von bastla:
@Florian.Sauber
War ja gar nicht (sooo) ernst gemeint ...

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
Bitte warten ..
Mitglied: Spidi-25
17.09.2010 um 17:43 Uhr
@bastla

es gibt eigentlich keinen besonderen Grund, das Beispiel von dir

V:Test\Variabler Ordner\
Variabler Ordner_0.jpg
Variabler Ordner_1.jpg

wäre schon recht, wen das erste Bild mit _1 anfangen würde

momentan sieh es wie das Beispiel von Florian.Sauber

V:Test\Variabler Ordner\
Variabler Ordner.jpg
Variabler Ordner_1.jpg

Grüße
Spide-25
Bitte warten ..
Mitglied: Florian.Sauber
17.09.2010 um 17:53 Uhr
Wie jetzt, was jetzt, wo jetzt?
Wenns momentan so aussieht, dann ist es doch das, was Du wolltest?!
Ich hoffe, Du weißt, was Du willst, ich weiß es nämlich nicht mehr...
Bitte warten ..
Mitglied: Spidi-25
17.09.2010 um 18:05 Uhr
eben nicht vielleicht habe ich mich falsch ausgedrückt, am Anfang wollte ich wollte ich a,b,c
Zitat von Spidi-25:

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

danach habe ich gemeint, funktioniert so weit gut komm auch mit der Nummerierung klar

und bei mehreren Dateien, mehr als 1 Datei
V:Test\Variabler Ordner\
Variabler Ordner_1.jpg
Variabler Ordner_2.jpg

es war noch nie die rede von

V:Test\Variabler Ordner\
Variabler Ordner.jpg
Variabler Ordner_1.jpg

Grüße
Spidi-25
Bitte warten ..
Mitglied: bastla
17.09.2010 um 19:54 Uhr
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:
01.
@echo off & setlocal 
02.
for /d %%i in ("V:\Test\*.*") do ( 
03.
    pushd "%%i" 
04.
    for /f "delims=" %%a in ('dir /b /a-d') do call :ProcessFile "%%~nxi" "%%a" 
05.
    popd 
06.
07.
goto :eof 
08.
 
09.
:ProcessFile 
10.
set /a Zusatz=0 
11.
:Loop 
12.
set /a Zusatz+=1 
13.
if exist "%~1_%Zusatz%%~x2" goto :Loop 
14.
 
15.
ren %2 "%~1_%Zusatz%%~x2" 
16.
goto :eof
Bei einer größeren Anzahl von Dateien würde ich noch etwas formatieren - 2-stellig zB (als Ersatz der Zeilen 9ff):
01.
:ProcessFile 
02.
set /a Zusatz=10000 
03.
:Loop 
04.
set /a Zusatz+=1 
05.
if exist "%~1_%Zusatz:~-2%%~x2" goto :Loop 
06.
 
07.
ren %2 "%~1_%Zusatz:~-2%%~x2" 
08.
goto :eof
Grüße
bastla
Bitte warten ..
Mitglied: Florian.Sauber
17.09.2010 um 20:02 Uhr
Zitat von Spidi-25:
eben nicht vielleicht habe ich mich falsch ausgedrückt....

Nee, war mein Fehler!

Grüße Flo
Bitte warten ..
Mitglied: Spidi-25
18.09.2010 um 20:43 Uhr
Vielen dank bastla und Florian.Sauber für die hilfe

jetzt im Nachhinein ist es auch logisch die Zeile 10 zu entfernen, es wird nicht mehr nach dem Dateinamen=Ordnernamen gesucht sondern gleich die 1 Datei in +_1 umbenannt.


habe den code noch etwas abgeändert

01.
@echo on & setlocal  
02.
for /d %%i in (.) do (  
03.
    pushd "%%i" 
04.
    for /f "delims=" %%a in ('dir /b /a-d *.jpg') do call :ProcessFile "%%~nxi" "%%a"  
05.
    popd  
06.
) 
um direkt im Ordner nur jpg´s in Ordnernamen und nicht im Unterordner Dateien in Unterordnernamen umzubenennen, ist mein Ansatz richtig (ist nur für Übungszweke)?

eine weitere frage nur Interesse halber
gibt es bei if exist nicht die Möglichkeit wen Deiteierweiterung größer als 1 dann goto nach?

habe noch eine Aufgabe bezüglich wöchentlicher Datensicherung, werde es versuchen selbst zu lösen. Unabhängig davon ob ich es selbst hin bekomme oder nicht ich werde später einen Beitrag dazu eröffnen, und auf Einzelheiten eingehen.

Grüße
Spidi-25
Bitte warten ..
Mitglied: bastla
18.09.2010 um 23:02 Uhr
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 "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) mit
for %%i in (Datei.Typ) do set "Erw=%%~xi"
Falls Du Erweiterungen der Art "001", "002", etc (also jeweils 3 Ziffern) verarbeiten willst, kannst Du auf > 1 etwa so prüfen:
01.
for %%i in (Datei.009) do set "Erw=%%~xi" 
02.
set "IstZahl=true" 
03.
for /f "delims=.0123456789" %%a in ("%Erw%") do set "IstZahl=" 
04.
if not defined IstZahl goto :KeineZahl 
05.
set /a Wert=1%Erw:~1%-1000 
06.
if %Wert% gtr 1 goto :Label
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]
Bitte warten ..
Mitglied: Suzi10
03.11.2010 um 23:36 Uhr
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
Bitte warten ..
Mitglied: Biber
04.11.2010 um 08:09 Uhr
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.
>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"
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
  • nach dem 1 Lauf "Download_persbackup4.zip"
  • nach dem 2 Lauf "Download_Download_persbackup4.zip"
  • nach dem 3 Lauf "Download_Download_Download_persbackup4.zip"
etc.
Jedenfalls wenn keine entsprechende Prüfung erfolgt.

Grüße
Biber
Bitte warten ..
Mitglied: Suzi10
04.11.2010 um 09:53 Uhr
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!
Bitte warten ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

(1)

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Ähnliche Inhalte
Batch & Shell
gelöst Dateiname entsprechend einem um x-Ebenen übergeordeten Ordnernamen umbenennen (3)

Frage von Booster07 zum Thema Batch & Shell ...

Batch & Shell
gelöst Ordnerinhalt mit Ordnernamen umbenennen (5)

Frage von Rotnasenkater zum Thema Batch & Shell ...

Batch & Shell
Pdf Files umbenennen (7)

Frage von Sacred zum Thema Batch & Shell ...

Windows Server
gelöst WSUS SUSDB umbenennen (6)

Frage von vessev zum Thema Windows Server ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (13)

Frage von JayyyH zum Thema Switche und Hubs ...

DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...

Backup
Clients als Server missbrauchen? (9)

Frage von 1410640014 zum Thema Backup ...

Windows Server
Mailserver auf Windows Server 2012 (9)

Frage von StefanT81 zum Thema Windows Server ...