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

Ordnernamen kürzen

Frage Entwicklung Batch & Shell

Mitglied: Knochen

Knochen (Level 1) - Jetzt verbinden

22.05.2010 um 20:36 Uhr, 6400 Aufrufe, 4 Kommentare

Hallo,

ich möchte gerne Ordner per Batch um 12 Zeichen am Anfang kürzen.

Beispiel:

Backup_neu__22.05.2010_Fotos

wird zu

22.05.2010_Fotos

Die Ordnernamen sind dabei keine Konstante, sie ändern sich mit der Zeit.

Kann mir jemand sagen, wie das geht?
Achja, eine Überprüfung, ob der Ordner schon vorhanden ist, wird dabei nicht benötigt.

Grüße
Mitglied: bastla
22.05.2010 um 20:49 Uhr
Hallo Knochen und willkommen im Forum!

Dein Beispiel ließe auch eine andere Vorgangsweise (als genau 12 Zeichen abzuschneiden) zu, nämlich das Trennen anhand der "_" und Übernehmen des neuen Namens erst ab dem dritten daraus entstehenden Teil:
for /d %i in ("D:\Dein Backup-Ordner\*_*__*") do @for /f "tokens=2* delims=_" %a in ("%~nxi") do @echo ren "%i" "%b"
Dieser Einzeiler ist zum Testen direkt in der CMD-Shell gedacht und simuliert (wegen des "echo") das Umbenennen nur durch Ausgabe des entsprechenden Befehles (wenn Du das "echo" entfernst, werden die Namen tatsächlich geändert); falls Du einen Batch daraus machen willst, einfach jedes enthaltene Prozentzeichen verdoppeln.
Um aber tatsächlich die ersten 12 Zeichen abzuschneiden (was für mich allerdings im Zweifelsfall nur zweite Wahl wäre), könntest Du folgenden Batch verwenden (ebenfalls wegen des "echo" vor dem "ren" noch als Simulation):
01.
@echo off & setlocal 
02.
set "Basis="D:\Dein Backup-Ordner" 
03.
set "Maske=*_*__*" 
04.
 
05.
pushd "%Basis%" 
06.
for /d %%i in ("%Maske%") do set "Name=%%~nxi" & call :ProcessDir "%%i" 
07.
popd 
08.
goto :eof 
09.
 
10.
:ProcessDir 
11.
echo ren %1 "%Name:~12%" 
12.
goto :eof
Die Vorgabe des Namensschemas "*_*__*" in beiden Varianten soll es ermöglichen, den Vorgang mehrmals ausführen zu können, ohne bereits geänderte Namen nochmals zu kürzen.

Grüße
bastla
Bitte warten ..
Mitglied: Knochen
22.05.2010 um 22:30 Uhr
Hallo bastla und danke für deine Antwort!

Super, funktioniert perfekt.


Allerdings gibts es auch viele Ordner die folgendes Format haben:
1234567890temp_-_Logapache22.05.2010
oder auch Max_Mustermann_-_Rechnung_neu

Wie entferne ich alle Zeichen vor "_-_" inklusive diesen?
Also das nurnoch Logapache22.05.2010 bzw. Rechnung_neu übrig bleibt?


Ich hoffe, du weißt da auch noch einen Trick

Grüße
Bitte warten ..
Mitglied: bastla
22.05.2010 um 22:49 Uhr
Hallo Knochen!

"_-_" kann nicht als Trennzeichen verwendet werden (da "for /f" nur einzelne Zeichen als Delimiter verarbeitet) - wenn allerdings immer nach dem ersten "-" getrennt werden soll, dann etwa so:
for /d %i in ("D:\Dein Backup-Ordner\*_-_*") do @for /f "tokens=1* delims=-" %a in ("%~nxi") do @for /f "tokens=* delims=_" %p in ("%b") do @echo ren "%i" "%p"
Grüße
bastla
Bitte warten ..
Mitglied: Knochen
22.05.2010 um 23:11 Uhr
Fantastisch, besser gehts nicht!
Danke!

Gruß
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst String automatisch anpassen (erweitern oder kürzen) (9)

Frage von CreatorX zum Thema Batch & Shell ...

PHP
PHP: URL kürzen (14)

Frage von michi-ffm zum Thema PHP ...

Batch & Shell
gelöst FOR Schleife mit Unterverzeichnissen, die Ausgabe kürzen (tokens evtl.) (5)

Frage von Kriegstreiber zum Thema Batch & Shell ...

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

Frage von Booster07 zum Thema Batch & Shell ...

Neue Wissensbeiträge
Google Android

Cyanogenmod alternative Downloadquelle

(5)

Tipp von Lochkartenstanzer zum Thema Google Android ...

Batch & Shell

Batch als Dienst bei Systemstart ohne Anmeldung ausführen

(5)

Tipp von tralveller zum Thema Batch & Shell ...

Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Statische Routen mit Shorewall, ISC-DHCP Server konfigurieren für Android Devices (24)

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

Server
gelöst Wie erkennen, dass nur deutsche IPs Zugang zu einer Website haben? (22)

Frage von Coreknabe zum Thema Server ...

Hardware
16-20 Port POE Switch mit VLAN (16)

Frage von thomasreischer zum Thema Hardware ...

Windows Server
Exchange HyperV Prozessorlast (16)

Frage von theoberlin zum Thema Windows Server ...