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, 6213 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 ..
Neuester Wissensbeitrag
Ä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
gelöst Mehrere Ordnernamen auslesen und in eine Variable schreiben (5)

Frage von schmitho zum Thema Batch & Shell ...

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