Top-Themen

Aktuelle Themen (A bis Z)

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
Kommentar vom Moderator Biber am 02.02.2010 um 19:34:16 Uhr
Challenge mit einem Batch beim Umbennen...
#rgc = 643
ich habe eine Challenge mit dem Umbennen von Dateien mit einem Batch File
#rgc = 644
Ich würde gerne alle '.' im File Namen (Z.B. eins.zwei.drei.txt) in '-' (eins-zwei-drei.txt) umbennen.
#rgc =645
Ein "Umbennen" hatten wir schon oft, aber noch nie so viele im Zusammenhang mit der Challenger...
Muss ein Mehr-Sitzer sein...

gelöst Challenge mit einem Batch beim Umbennen von Files mit einem Punkt im Namen gesucht

Mitglied: thomas2010

thomas2010 (Level 1) - Jetzt verbinden

02.02.2010, aktualisiert 19:36 Uhr, 3618 Aufrufe, 12 Kommentare

Hallo Alle,

ich habe eine Challenge mit dem Umbennen von Dateien mit einem Batch File
(Es sind sehr viele Files und deswegen will ich das automatisieren).

Ich würde gerne alle '.' im File Namen (Z.B. eins.zwei.drei.txt)
in '-' (eins-zwei-drei.txt) umbennen.

Ich habe mir die Beispiele von den anderen Umbenennen Fragen angesehen aber ich
bekomms leider nur hin das alle und damit leider auch
das letzte '.' im Beispiel '.txt' (File Endung) umbenannt werden.

Kann mir irgend jemand Bitte helfen oder einen Tipp geben wie man das richtig mit
einem Batch macht und das letzte '.' im File Namen beim umbenennen bestehen bleibt?

Grüße
Thomas
Mitglied: dog
02.02.2010 um 19:09 Uhr
Ungetestet mit VBS etwa so:
01.
Dim file, name,first, newName 
02.
 
03.
Set filesys = CreateObject("Scripting.FileSystemObject") 
04.
Set folder  = filesys.GetFolder("C:\Ordner") 
05.
Set files   = folder.Files 
06.
 
07.
For Each file in files 
08.
	name = StrReverse(file.Name) 
09.
	first = InStr(name,".") 
10.
	newName = Replace(name,"-",".",(first+1)) 
11.
	file.Name = StrReverse(newName) 
12.
Next
Bitte warten ..
Mitglied: miniversum
02.02.2010 um 19:15 Uhr
Ungstestete version:
01.
@echo off 
02.
FOR /F "delims=" %%i in ('dir /b "C.\dateien\*.*"') do call:umbenennen "%~ni" "%~xi" 
03.
goto:eof 
04.
 
05.
:umbenennen 
06.
set "name=%~1" 
07.
ren "C.\dateien\%~1%~2" "%name:.=-%%~2"
Bitte warten ..
Mitglied: 76109
02.02.2010 um 22:20 Uhr
Hallo Dog!

Dein Skript wird nicht funktionieren. Die Dateierweiterung geht verloren und bei Replace ist die Reihenfolge vertauscht ("-", "." anstatt ".", "-")

Alternativ sollte das gehen (*.vbs):
01.
Const Path = "C:\Ordner" 
02.
 
03.
Dim Folder, File, oldName, newName 
04.
 
05.
Set Folder = CreateObject("Scripting.FileSystemObject").GetFolder(Path) 
06.
 
07.
For Each File In Folder.Files 
08.
    oldName = Split(StrReverse(File.Name), ".", 2) 
09.
    newName = Replace(StrReverse(oldName(1)), ".", "-") & "." & StrReverse(oldName(0)) 
10.
    If File.Name <> newName Then File.Name = newName 
11.
Next
Gruß Dieter
Bitte warten ..
Mitglied: dog
02.02.2010 um 22:29 Uhr
Ja, ich habe beim Beitrag nicht richtig aufgepasst
Bitte warten ..
Mitglied: 76109
02.02.2010 um 22:33 Uhr
Hallo Dog!

Das passiert mir ab und zu auch

Gruß Dieter
Bitte warten ..
Mitglied: edepfau
03.02.2010 um 09:43 Uhr
getestete Version:
01.
cd /d "C:\Ordner" 
02.
FOR /R %%i in ("*.*") do call :umbenennen "%%~pi" "%%~ni" "%%~xi" 
03.
goto :EOF 
04.
 
05.
:umbenennen  
06.
REM path name_only ext 
07.
set "name=%~2"  
08.
ren "%~1%~2%~3" "%~1%name:.=-%%~3"
Unterschied: der voll Pfad wird mitgenommen, die Verzeichnisse werden rekursiv durchlaufen.

Gruss,
Ede
Bitte warten ..
Mitglied: Biber
03.02.2010 um 11:01 Uhr
Moin edepfau,


Zitat von edepfau:
getestete Version:
Mag sein... aber wenn das Ergebnis des Test doch so war wie es aufgrund des Codes sein muss...
Dann solltest du besser ein paar Smilies dahintersetzen.... sonst benutzt noch irgendjemand den Schnipsel.

Andererseits...
.. es gab auch mal eine Zahnpasta, die sich verkauft hat wie blöd... auch nur wegen des Slogans "Klinisch getestet".
Und die hatten auch nie das Ergebnis des Tests mit angegeben.

01.
> cd /d "C:\Ordner" 
02.
> FOR /R %%i in ("*.*") do call :umbenennen "%%~pi" "%%~ni" "%%~xi" 
03.
> goto :EOF 
04.
>  
05.
> :umbenennen  
06.
> REM path name_only ext 
07.
> set "name=%~2"  
08.
> ren "%~1%~2%~3" "%~1%name:.=-%%~3" 
09.
> 
Unterschied: der voll Pfad wird mitgenommen, die Verzeichnisse werden rekursiv durchlaufen.

Gruss,
Ede

Kann aus zwei Gründen zwar keinen Schaden anrichten, aber auch nie funktionieren

  • Wenn beim Umbenennen "alterName"=="neuerName" ist, dann geht natürlich ein "REN alterName neuerName" in die Grütze.

  • selbst wenn Dateien gefunden worden wären mit "neuerName ist anders als alterName", also mit zu ersetzendem Punkt im Dateinamen, dann wäre der REN-Befehl daran gescheitert, dass bei Alt- UND bei Neu-Datei jeweils der Pfad mit angegeben ist. Das darf nicht.

Neuer Versuch (Prädikat "getestet und für ausbaufähig befunden")
01.
@echo off & setlocal 
02.
FOR /R "D:\Biber" %%i in ("*.*") do call :umbenennen "%%~fi" 
03.
goto :EOF 
04.
 
05.
:umbenennen  
06.
:: den Namen (ohne Ext) in eine Variable speichern zum Suchen/ersetzen 
07.
Set "name=%~n1"  
08.
:: Punkt durch Minus ersetzen 
09.
Set "Name=%name:.=-%" 
10.
:: Wenn kein Punkt im Namen war bzw. NameVorher gleich NameNachher.ZURÜCK 
11.
If "%name%"=="%~n1" goto :eof 
12.
:: sonst : Umbenamsen HIER NUR ANGEDEUTET mit ECHO 
13.
Echo ren "%~1" "%name%%~x1"
Ergebnis/Ausgabe eines Aufrufs der Batchdatei "edeV.cmd"
>z:\austausch\edev.cmd 
ren "D:\Biber\downloads\KDiff3Setup_0.9.95.exe" "KDiff3Setup_0-9-95.exe" 
ren "D:\Biber\downloads\seamonkey-1.1.16.de-AT.win32.zip" "seamonkey-1-1-16-de-AT-win32.zip"
Von allen Dateien in der Teilstruktur "D.\Biber" haben einzig die beiden angezeigten Dateien einen/mehrere Punkte im Namen.
Und für die wird angezeigte REN-Anweisung generiert

Grüße
Biber
Bitte warten ..
Mitglied: edepfau
03.02.2010 um 13:17 Uhr
Sehr guter Hinweis auf die Syntax von ren. Der Pfad darf beim Ersatznamen nicht angegeben werden.
Auch die Aufnahme des Anfangspfads in die "for"-Schleife ist gut, sehr kompakt. Kannte ich nicht.

Der andere Einwand, dass ren "abc" "abc" zu einem Fehler führt, stimmt zumindest bei mir nicht (W2K, cmd-Fenster). Vielleicht aber unter DOS.
Ohne IF-Abfrage und doppelte Ersetzungen spart man eine Menge Zeit, wenn es um Tausende von Ordnern geht.

01.
@echo off & setlocal enableextensions                 
02.
FOR /R "C:\Ordner" %%i in ("*.*") do call :umbenennen "%%~pi" "%%~ni" "%%~xi" 
03.
goto :EOF 
04.
 
05.
:umbenennen  
06.
REM path name_only ext 
07.
set "name=%~2"  
08.
ren "%~1%~2%~3" "%name:.=-%%~3" || echo FEHLER bei "%~1%~2%~3" 
09.
 
Gruss,

Ede
Bitte warten ..
Mitglied: Biber
03.02.2010 um 14:17 Uhr
Moin edepfau,

Hier hast du recht...
Der andere Einwand, dass ren "abc" "abc" zu einem Fehler führt, stimmt zumindest bei mir nicht (W2K, cmd-Fenster). Vielleicht aber unter DOS.

Das habe ich nicht überprüft (sondern nur den oft gelesenen Fehlertext "Datei nicht gefunden oder doppelter Dateiname" im Hinterkopf bzw. unterstellt).

In der Tat ist es aber so, dass der Versuch einer Datei-Umbenamsung auf den bereits vorhanden Namen nicht als "Fehler" gewertet wird
Beispiel:
01.
>echo xx>test23.txt 
02.
>ren test23.txt test23.txt ||echo fehler 
03.
{... echoes nothing..}
Und noch redmondiger - nicht nur, dass kein Fehler gemeldet wird... er macht es auch tatsächlich..
Eine Variation
ren test23.txt Test23.txt
.... hinterlässt wirklich eine "Test23.txt"-Datei mit einem gross geschriebenen "T" ...

So wie die Mädels möchte ich auch programmieren können...

Grüße
Biber
Bitte warten ..
Mitglied: thomas2010
04.02.2010 um 18:11 Uhr
Hallo Biber,

erstmal Danke für die gute wirklich interessante Lösung.
Auch Danke an die anderen der Diskussion.
Wieder einiges dazu gelernt!

Eine kleine Sache ist mir aber noch nicht ganz klar.

:: Punkt durch Underline ersetzen
set "name=%name:.=_%"
xxxx

Das ':' steht für ersetzen?
Wo sind solche Sachen eigenlich dokumentiert?
Ich habe im Netz mal gesucht habe aber zu dem speziellen set nichts gefunden.

Gruß
Thomas
Bitte warten ..
Mitglied: miniversum
04.02.2010 um 18:33 Uhr
starte die cmd und gib dort
set /?
ein. Da steht das.
Funktioniert auch bei anderen Befehlen ;)
Bitte warten ..
Mitglied: Biber
04.02.2010 um 18:37 Uhr
Moin thomas2010,

zu deinen Rest/Folgefragen
Das ':' steht für ersetzen?
Jein.... siehe unten.

Wo sind solche Sachen eigenlich dokumentiert?

Das wirst du jetzt gar nicht glauben, ist aber ernst gemeint:
Am heimischen Rechner in einem geöffneten CMD-Fenster.
Da gibt es zu jedem internen/externen mitgelieferten Kommandozeilen-Befehl eine Hilfe durch einfachen Aufruf von "DerBefehl /?"

Und die ist eigentlich gar nicht schlecht und verglichen mit dem Internet regelrecht werbefrei.
Beispiel am CMD-Prompt wäre die Hilfe zum Befehl SET, wo ja vielleicht nicht nur etwas zum SETzen von Variablen steht, sondern auch etwas zur UmSETzung..

> SET /? 
..... 
.... 
Das Ersetzen von Umgebungsvariablen wurde folgendermaßen erweitert: 
 
    %PATH:str1=str2% 
 
Dies erweitert die PATH-Umgebungsvariable, wobei jede Instanz von "str1" im 
erweiterten Ergebnis mit "str2" ersetzt wird. "str2" kann die leere 
Zeichenfolge sein, um alle Instanzen von "str1" aus der erweiterten Ausgabe zu 
löschen. Wenn "str1" mit einem Sternchen beginnt, steht "str1" für alles 
zwischen dem Anfang der erweiterten Ausgabe bis zum ersten Auftreten des 
übrigen Abschnitts von "str1". 
..... 
....
Ich habe im Netz mal gesucht habe aber zu dem speziellen set nichts gefunden.
Irgendwo zwischen den Extremen "ganz triste Hilfe zu CMD-Befehlen auf einem bernsteinfarbenen 25x80 Monitor" und "quietschbunte Kiddiesprechblasen im Netz" könntest du ja mal die Suchfunktion auf dieser Seite ausprobieren (oben rechts zu sehen).

Zu Batch- und Skripting-Themen haben wir schon ein oder zwei Antworten hier geben können, die so insgesamt als ganz brauchbar beurteilt wurden.

Grüße
Biber
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Batch gesucht welcher täglich Files mit wechselndem Namen umbenennt und kopiert

gelöst Frage von Fluxx79Batch & Shell8 Kommentare

Hallo zusammen Da ich mit Google nicht fündig geworden bin, versuche hier mal mein Gluck. Ich habe einen Ordner, ...

Batch & Shell

PDF Datei umbennen aus TXT File ?

gelöst Frage von BotpennerBatch & Shell18 Kommentare

Hi, ich habe folgendes Problem. Ich besitze mehrere PDF-Dateien. Diese haben aktuell als Dateinamen eine belibige 6 Stellige Nummer. ...

Batch & Shell

Punkte aus Dateinamen per Batch entfernen

gelöst Frage von Sommerpalme73Batch & Shell12 Kommentare

Hallo ihr Lieben, ich bin ziemlicher Anfänger und habe leider keine Ahnung von Skript-Sprache. Nun soll ich aber bei ...

Microsoft Office

Excel Punk-Liniendiagramm Punkte mit Namen beschriften

gelöst Frage von Hobi84Microsoft Office4 Kommentare

Hallo, ich habe eine Tabelle aus 3 Spalten: Name; Alter; Größe Ich habe ein Liniendiagramm mit Punkten erstellt wobei ...

Neue Wissensbeiträge
Sicherheit
Sicherheitsrisiko: Die Krux mit 7-Zip
Information von kgborn vor 6 StundenSicherheit

Bei vielen Anwendern ist das Tool 7-Zip zum Entpacken von Archivdateien im Einsatz. Die Software ist kostenlos und steht ...

Internet

Datendealing im WWW Tracking Methoden immer brutaler

Information von sabines vor 16 StundenInternet

Interessanter Artikel zum Thema Tracking im WWW und die immer "besseren" Methoden des Trackings. Professor Arvind Narayanan (Princeton-Universität) betreibt ...

Erkennung und -Abwehr

Ups: Einfaches Nullzeichen hebelte den Anti-Malware-Schutzt in Windows 10 aus

Information von kgborn vor 1 TagErkennung und -Abwehr

Windows 10 ist das sicherste Windows aller Zeiten, wie Microsoft betont. Insidern ist aber klar, das es da Lücken, ...

Windows 10

Windows 10 on ARM: von Microsoft entfernte Info - Klartext, was nicht geht

Information von kgborn vor 1 TagWindows 10

Windows 10 on ARM ist ja eine neue Variante, die Microsoft im Verbund mit Geräteherstellern am Markt etablieren will. ...

Heiß diskutierte Inhalte
Server
Route-Befehl Unterstützung (unter CMD)
gelöst Frage von FKRR56Server36 Kommentare

Guten Tag , i.M. habe ich Probleme über den CMD-Route-Befehl ein Routing auf einen entfernten Server zuzulassen. Der Server ...

Windows 10
Windows 10 (1709) Tastur und Maus wieder einschalten?
Frage von LochkartenstanzerWindows 1028 Kommentare

Moin, Ich habe von einem Kunden einen Win10-Rechner bekommen, bei dem weder Tastatur noch Maus geht. Die Hardware funktioniert ...

Microsoft
TV-Tipp: Das Microsoft-Dilemma
Information von kgbornMicrosoft17 Kommentare

Aktuell gibt es in Behörden und in Firmen eine fatale Abhängigkeit von Microsoft und dessen Produkten. Planlos agieren die ...

Webbrowser
Welcher Browser ist der Beste?
Frage von justtinWebbrowser15 Kommentare

Hallo Leute Ich habe eine interessante Frage. Mich wurde mal interessieren welcher Browser ist eure meinung nach der beste? ...