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

Wie aus Dateinamen einen durch Sonderzeichen begrenzten variablen String entfernen

Frage Entwicklung Batch & Shell

Mitglied: ozabel

ozabel (Level 1) - Jetzt verbinden

20.12.2008, aktualisiert 04:44 Uhr, 6373 Aufrufe, 8 Kommentare

Hallo,

ich habe jetzt schon viele Beiträge gelesen aber leider keine Lösung für mein Problem gefunden.
Ich möchte die Namen von diversen Dateien eines Ordners (incl. Unterordner) umbenennen, in dem ein durch Sonderzeichen begrenzter variabler Teil entfernt wird.
Beispiele:
Datei heißt "Hier bin ich [der Grinch] zu Hause.txt"
und soll heißen "Hier bin ich zu Hause.txt"
oder auch "Datei [von mir].txt" soll zu "Datei.txt" werden.
Wie kann ich jetzt den String " [....]" entfernen?

Danke Oliver
Mitglied: bastla
20.12.2008 um 09:43 Uhr
Hallo ozabel und willkommen im Forum!

Wenn Dein(e) Begrenzungszeichen tatsächlich nur den nicht benötigten Teil des Namens "einrahmen" (und nicht auch schon vor diesem Teil als "regulärer" Bestandteil enthalten ist/sind), dann etwa so:
for /f "delims=" %i in ('dir /s /b /a-d "D:\Dein Ordner\*.txt"') do @for /f "tokens=1,2* delims=[]" %a in ("%~nxi") do @echo ren "%i" "%a%c"
Wenn das Testen (direkt an der Kommandozeile) erfolgreich verlaufen ist, kannst Du das "echo" vor dem "ren" entfernen - solange es noch da ist, wird der Befehl zum Umbenennen nur angezeigt, aber nicht ausgeführt.

Falls Du einen Batch daraus machen willst, jeweils die "%"-Zeichen verdoppeln (also "%%i", "%%a", ..., aber auch "%%~nxi" verwenden).

Grüße
bastla
Bitte warten ..
Mitglied: ozabel
21.12.2008 um 03:26 Uhr
Hallo bastla,

vielen Dank für die prompte Hilfe. Hat grundsätzlich funktioniert, jedoch bleibt das Leerzeichen vor dem nun entfernten Sting [] stehen.
Kann man das auch irgendwie noch entfernen?

Ich habe zwar folgendes hier im Forum gefunden (und für mein Anliegen umgewandelt):

for /f "delims=" %%i in ('dir /s /b /a-d *.txt') do call :ren "%%i"
goto ende

:ren
set fname=%1
set newname=%fname: .txt=.txt%
ren %1 %newname%
goto ende

:ende

Aber zum einen bedeutet das ein erneutes Aufrufen aller Dateien (vielleicht geht das auch gleich mit beim ersten Schritt).
Und zum anderen läuft es nicht (es wird nur eine Datei aufgerufen, und per "echo ren" wird für diese zwar die gewünschte Entfernung angezeigt, aber ohne Echo gibt es einen Syntaxfehler).

Hast Du (oder ein anderer Wissender) eine Idee?

Oliver
Bitte warten ..
Mitglied: bastla
21.12.2008 um 13:52 Uhr
Hallo ozabel!

Versuch es damit:
01.
@echo off & setlocal 
02.
for /f "delims=" %%i in ('dir /s /b /a-d "D:\Dein Ordner\*.txt"') do call :ProcessFile "%%i" 
03.
goto :eof 
04.
 
05.
:ProcessFile 
06.
for /f "tokens=1,2* delims=[]" %%a in ("%~nx1") do (set "Teil1=%%a" & set "Teil2=%%c") 
07.
if "%Teil1:~-1%"==" " set "Teil1=%Teil1:~,-1%" 
08.
echo ren %1 "%Teil1%%Teil2%" 
09.
goto :eof
Grüße
bastla
Bitte warten ..
Mitglied: michaelfolz
31.05.2010 um 20:01 Uhr
Hallo,

steht vor einem ähnlichen Problem und frage mich nach einigen Recherchen im Web, ob es wirklich kein fertiges Tool gibt, mit dem man beim Umbenennen einer Reihe von Dateien einen - in Länge, Inhalt und Position - variablen String entfernen lassen kann.

Mit freundlichen Grüßen,
MFo
Bitte warten ..
Mitglied: bastla
31.05.2010 um 21:25 Uhr
Hallo michaelfolz!
frage mich nach einigen Recherchen im Web, ob es wirklich kein fertiges Tool gibt
Hinsichtlich der Tatsache, dass wir in diesem Thread ziemlich unter uns bleiben dürften, ist es naheliegend, Dich zu fragen ...

Damit das aber kein Selbstgespräch wird, eine kurze Stellungnahme meinerseits: Falls Du eine konkrete Problemstellung hast und diese partout nicht per Batch und / oder VBScript lösen magst, kann / mag ich jedenfalls nix beitragen ...

Grüße
bastla

[Edit]
Hallo Biber - Gruß zurück
Meinen edukativ gemeinten Hinweis auf die relative Einsamkeit in diesem Thread hast Du jetzt aber gerade relativiert ...
[/Edit]

[Edit2] Die Frage hinsichtlich der 2000 Aufrufe ist allerdings, wie viele seit gestern um etwa 20:30 getätigt wurden (außerdem hatte ich ja "relativ" gesagt ) ... [/Edit2]
Bitte warten ..
Mitglied: Biber
31.05.2010 um 21:28 Uhr
Moin michaelfolz,

Zitat von michaelfolz:
Hallo,

steht vor einem ähnlichen Problem und frage mich nach einigen Recherchen im Web, ob es wirklich kein fertiges Tool gibt, mit
dem man beim Umbenennen einer Reihe von Dateien einen - in Länge, Inhalt und Position - variablen String entfernen lassen kann.

Mit freundlichen Grüßen,
MFo
Öhhmmm....ja.
Ich frage mich auch oft -manchmal sogar ohne vorangegangene Recherchen im Web - wie morgen wohl das Wetter wird, warum es die FDP immer noch über die 5-Prozenthürde schafft und ob eine/r von uns jemals eine Meisterschaftsfeier auf Schalke erleben wird.

Nur... ich frage mich meist weniger öffentlich...

Im Ernst, natürlich gibt es mit der Maus bedienbare Tools in den Farben der Saison und mit abgerunden Ecken.
Und die werbewirksamen Namen lauten genauso, wie sie auch von jeder Krabbelgruppe nach zweieinhalb Minuten erarbeitet worden wären (FlexRenamer, BulkRename, SuperRename, MultiRenamer, MegaRenamer, X-Renamer... *schnarch*).

Nur... WTF sollte sich jemand einen 3,8 MegaByte-$30-Shareware-Klotz mit automatischer Selbstverankerung im Startmenü, Schnellstartleiste und aufm Desktop herunterladen und installieren, wenn ein simples Copy&Pasten oder Abtippseln einer Handvoll Halbzeilen dasselbe leistet?

Anyway... solltest du bei deiner Frage im Web auch Antworten finden...
--> dann stelle doch bitte einen "Erfahrungsbericht" zu Rename/Umbenams-Tools in den Bereich "Tools & Utilities".

Denn auch dafür gibt es durchaus eine Zielgruppe unter unseren MitleserInnen.

Grüße
Biber

[Edit] Biber grüßt alle Rechtsüberholer. [/Edit]
[Edit2] Moin bastla, sooo einsam kann es in diesem Thread nicht sein bei knapp 2000 Aufrufen bis jetzt... [/Edit2]
Bitte warten ..
Mitglied: michaelfolz
01.06.2010 um 11:00 Uhr
Okay,

latürnich wollte ich, dass bastla sich meldet, hab mich nur nicht getraut, ihn direkt zu fragen.

Habe auch nix dagegen, Batchcode zu übernehmen, wenn, ja wenn er auch für einen Nichtexperten wie mich nachvollziehbar, d.h. kommentiert ist.

Vielleicht hat bastla ja Lust, für mich Wurm etwas zu proggen <schwitz, anbet>:

Dateinamen lauten:
"abcxyz 2010 001.jpg
abcxyz 2010 002.jpg
abcxyz 2010 003.jpg"
- darunter auch .avi -
usw.

Bei denen soll die Nummerierung weg.

Mit freundlichen Grüßen,
MFo
Bitte warten ..
Mitglied: bastla
01.06.2010 um 11:34 Uhr
Hallo michaelfolz!
... hab mich nur nicht getraut, ihn direkt zu fragen.
Ich hoffe, das lässt sich mit Schüchternheit Deinerseits begründen und nicht durch einen Eindruck, den ich vermittelt hätte ...

Könntest Du ein klein wenig mehr zu den umzubenennenden Dateien sagen (immer genau 3 Bestandteile - und daher genau 2 Leerzeichen - enthalten, alle in einem Ordner, ...)?

Grüße
bastla
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Heiß diskutierte Inhalte
Router & Routing
gelöst Ipv4 mieten (22)

Frage von homermg zum Thema Router & Routing ...

Windows Server
DHCP Server switchen (20)

Frage von M.Marz zum Thema Windows Server ...

Exchange Server
gelöst Exchange 2010 Berechtigungen wiederherstellen (20)

Frage von semperf1delis zum Thema Exchange Server ...

Hardware
gelöst Negative Erfahrungen LAN-Karten (19)

Frage von MegaGiga zum Thema Hardware ...