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

Teile von Dateinamen löschen

Frage Entwicklung Batch & Shell

Mitglied: truecolor

truecolor (Level 1) - Jetzt verbinden

22.10.2008, aktualisiert 23.10.2008, 4887 Aufrufe, 8 Kommentare

Hallo zusammen,

leider gibt es kein mir bekanntes Programm, dass diese kleine Aufgabe erledigt:

ich habe über hunterte verschiedene Verzeichnisse auf einer Platte verteilt dateien liegen, die z.B. so ausschauen

asdfjkl_38485.txt
asdfjkl_4574.txt
asdfjkl_445649459.txt

...

Nun möchte ich den Anfangsteil "asdfjkl_" in einem Batch entfernen lassen. Sprich, die ganze Platte durchforsten
und alle Dateien, die den Anfangs-Suchstring "asdfjkl_" besitzen, eben diesen Anfangsteil löschen.

Ist das viel Arbeit sowas zu stricken? Ich wüßte nicht, wo ich anfangen sollte.


Gruß ...Frank
Mitglied: bastla
22.10.2008 um 20:35 Uhr
Hallo truecolor!

Das sollte etwa so gehen:
01.
@echo off & setlocal 
02.
set "Basis=D:\Testordner\mit wenigen Dateien\" 
03.
set "Prefix=asdfjkl" 
04.
set "Delimiter=_" 
05.
set "Ext=.txt" 
06.
 
07.
for /f "delims=" %%i in ('dir /s /b /a-d "%Basis%%Prefix%%Delimiter%*%Ext%"') do for /f "tokens=1* delims=%Delimiter%" %%a in ("%%~nxi") do if not exist "%%~dpi%%b" (echo ren "%%i" "%%b") else (echo "%%i" konnte nicht umbenannt werden)
Zum Testen könntest Du für den Basisordner (der am Ende immer einen "\" haben muss) einen Ordner mit nur wenigen Dateien angeben, ansonsten auch zB "D:\" für das gesamte Laufwerk "D:".

Sollte eine Datei nicht umbenannt werden können, weil eine gleichnamige Datei bereits existiert, wird eine entsprechende Meldung ausgegeben.

Grüße
bastla
Bitte warten ..
Mitglied: truecolor
23.10.2008 um 07:30 Uhr
Hallo Basla,

und erst mal vielen Dank.

Jetzt hab ich nochmal nach den Datein geschaut und mir ist ein kleiner Fehler unterlaufen. Die Dateien sehen so aus:

- die Extensions sind nicht alle gleich
sind teilweise einige gezipt

- die Trennung besteht aus einen Leerzeichen
Ersetze ich nun den Parameter als set "Delimiter= ", wird nix ersetzt, da das Leerzeichen in der Form wohl nicht erkannt wird. Auch %20 kann nicht eingesetzt werden, dann findet das Prg keine Dateien.

- in dem zu löschenden Teil befindet sich auch noch ein Leerzeichen

Beispiel:
asdf jkl 38485.txt
asdf jkl 4574.zip
asdf jkl 445649459.prr
asdf jkl 770694.xxx

Was müßte ich verändern, damit unter den Voraussetzungen die Dateien gefunden und bearbeitet werden?

Im Voraus vielen Dank.

Grüße ... Frank
Bitte warten ..
Mitglied: bastla
23.10.2008 um 08:28 Uhr
Hallo truecolor!

Die Dateien sehen so aus: ...
Ist ja kaum ein Unterschied ...

Versuch es damit:
01.
@echo off & setlocal 
02.
set "Basis=D:\" 
03.
set "Prefix=asdf jkl" 
04.
set "Delimiter= " 
05.
set "Ext=.*" 
06.
 
07.
for /f "delims=" %%i in ('dir /s /b /a-d "%Basis%%Prefix%%Delimiter%*%Ext%"') do for /f "tokens=2* delims=%Delimiter%" %%a in ("%%~nxi") do if not exist "%%~dpi%%b" (echo ren "%%i" "%%b") else (echo %%i konnte nicht umbenannt werden)
Grüße
bastla
Bitte warten ..
Mitglied: truecolor
23.10.2008 um 09:06 Uhr
Hallo bastla,

so langsam kommen die ein oder anderen "aha"´s

Im command-fenster kann ich schön beobachten, was die Zeilen bewirken.

Nur .. es wird nix umbenannt.

Der Ergebnis-String sieht genauso aus, wie er sein sollte, nur bewegen tut sich am Ende nix.

Grüße ... Frank
Bitte warten ..
Mitglied: bastla
23.10.2008 um 09:47 Uhr
Hallo truecolor!

Gewohnheitsmäßig schreibe ich bei eher heiklen Batches ein "echo" vor den eigentlichen Befehl, um gefahrlos testen zu können, da (wie Du feststellen konntest ) dann eben der Befehl nur angezeigt wird.

Genau dieses "echo" steht immer noch vor dem für das Umbenennen zuständigen
ren "%%i" "%%b"
- also einfach entfernen, und dann kannst Du auch den Ernstfall testen ...

Grüße
bastla
Bitte warten ..
Mitglied: truecolor
23.10.2008 um 11:28 Uhr
Hallo bastla,

jetzt mußte ich aber mal tüchtig loslachen. Dass ich das nicht gleich selbst gesehen hatte. Schande über mich

Aber anscheinend war ich ja auch nicht ganz doof, habe nämlich das zu editierende Verzeichniss komplett auf einen anderen PC kopiert um es dort als Sandkasten zu "quälen".


Vielen Dank und Gruß ... Frank

PS. läuft gerade ... und absolut genial ... super super super
Bitte warten ..
Mitglied: truecolor
23.10.2008 um 12:05 Uhr
...
der Explorer zeigte mir bei einer Suchaktion plötzlich, dass jede Menge Dateien noch nicht umbenannt wurden.

Grund:
Der Explorer war wohl sehr gründlich und zeigte mir zu den normalen Verzeichnis-Inhalten auch noch die Inhalte von ZIP-Dateien an. Und in den vielen ZIP-dateien liegen noch ein paar tausend von diesen umzubenennenden Dateien.

Ich möchte ja nicht allzu sehr meinen Newbie-Bonus ausspielen, aber gibt es dafür auch noch eine Lösung ?

...ausser löschen

Grüße ... Frank
Bitte warten ..
Mitglied: bastla
23.10.2008 um 19:11 Uhr
Hallo truecolor!

Ein realistischer Ablauf könnte sein: Entpacken, Umbenennen und (bei Bedarf) neuerliches Zippen der Dateien - eine Möglichkeit einer Bearbeitung innerhalb des Archivs kenne ich leider nicht.

Grüße
bastla
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Exchange Server
Exchange 2010 Akzeptierte Domäne löschen (4)

Frage von Rob1982 zum Thema Exchange Server ...

Exchange Server
gelöst SBS2011 - im Exchange mobile Geräte löschen (4)

Frage von MiSt zum Thema Exchange Server ...

Exchange Server
Inhalt von Postfächern in Exchange löschen (9)

Frage von m.reeger zum Thema Exchange Server ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (32)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...