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

Batch Umbenennen- alten Namen teilweise übernehmen, Leerzeichen im Namen

Frage Entwicklung Batch & Shell

Mitglied: ebimail

ebimail (Level 1) - Jetzt verbinden

23.12.2007, aktualisiert 24.12.2007, 6219 Aufrufe, 4 Kommentare

Hey,

ich würde gerne das beim umbenennen meines Ordners das Datum aus dem alten Namen übernommen wird.
Das ganze funktioniert auch ganz gut, nur sobald die Ursprungsdatei nicht "aktuelle_Sicherung..." sondern "aktuelle Sicherung...", also mit Leerzeichen, heißt, steht in der %%i Variable nur noch "aktuelle". Also findet der Befehl RENAME auch den entsprechenden Ordner nicht.

Gibt es hierfür eine Lösung?

\aktuelle Sicherung 12.12.2012\...
\aktuelle_Sicherung_12.12.2012\...

01.
@echo off 
02.
Setlocal EnableDelayedExpansion 
03.
 
04.
FOR /F %%i in ('dir /b "aktuelle Sicherung*"') do ( 
05.
set Name=%%i && echo !Name! && rename !Name! alte_Sicherung_!Name:~19,10! 
06.
)
Liebe Grüße
Mitglied: bastla
23.12.2007 um 21:30 Uhr
Hallo ebimail!

Da Leerzeichen (und Tab) als Standardtrennzeichen in einer "for /f"-Schleife gelten, musst Du explizit festlegen, dass kein Trennzeichen (delimiter) verwendet werden soll:
01.
FOR /F "delims=" %%i in ('dir /b "aktuelle Sicherung*"') do ( 
02.
set Name=%%i && echo !Name! && rename !Name! alte_Sicherung_!Name:~19,10! 
03.
)
Grüße
bastla
Bitte warten ..
Mitglied: Dani
23.12.2007 um 21:46 Uhr
Abend bastla,
wären im Falle von Leerzeichen in Ordnernamen bzw. Dateinamen die berühmten Anführungszeichen nicht noch am Anfang und Ende angebracht?!


Grüße
Dani
Bitte warten ..
Mitglied: ebimail
23.12.2007 um 21:56 Uhr
Leider gibt es in der RENAME Zeile immer einen Syntaxfehler?
Ich kann mir nicht erklären wieso? Den Ordnernamen erkennt er jetzt komplett...
01.
FOR /F "delims=" %%i in ('dir /b "aktuelle Sicherung*"') do ( 
02.
set Name=%%i  
03.
echo !Name! 
04.
rename "!Name!" "alte Sicherung - !Name:~21,10!" 
05.
)
Edit:
Habe es hinbekommen! (oben ist die Lösung)

DANKE!
Bitte warten ..
Mitglied: Biber
24.12.2007 um 09:31 Uhr
Moin ebimail,

kleiner Nachtrag der Vollständigkeit halber.
Wenn die Namenskonventionen so sind und bleiben wie beschrieben, dann geht es kürzer.
Zwar nicht ohne FOR-Anweisung, aber ohne Zwischenvariablen.

Beispiel direkt vom CMD:
01.
for /f "tokens=1*" %i in ('dir /b /ad "aktuelleSicherung *"') do @echo Rename "%i %j" "olleSicherung %j" 
Ein @echo vor der simulierten Rename-Anweisung soll dem risikofreien Testen dienen.
Durch die DIR-Wildcards, die mir nur Verzeichnisse mit dem Aufbau "aktuelleSicherung-LEERZEICHEN-whatever" liefern, kann zwar eigentlich nichts schiefgehen, aber....

Friedliche und erholsame Weihnachtstage
Biber
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Dateien (PDF) umbenennen via batch, teilw. Dateinamen übernehmen, neues Präfix (6)

Frage von brause1701 zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch: alle Ordner mit einem bestimmten Namen kopieren (4)

Frage von Remsboys zum Thema Batch & Shell ...

Microsoft Office
gelöst Dropdownlisten in Abhängigkeit mit Leerzeichen im Namen (Datenüberprüfung) (2)

Frage von kevische zum Thema Microsoft Office ...

Heiß diskutierte Inhalte
Verschlüsselung & Zertifikate
gelöst Festplattenverschlüsselung im Ausland (13)

Frage von Nicolaas zum Thema Verschlüsselung & Zertifikate ...

Festplatten, SSD, Raid
gelöst Fehlerhafte Blöcke im RAID 10 (12)

Frage von Kojak-LE zum Thema Festplatten, SSD, Raid ...

Batch & Shell
HTML in Batch und Powershell (12)

Frage von michi-ffm zum Thema Batch & Shell ...

Windows Server
gelöst Microsoft-Lizenz CALs und passendes Server-Betriebssystem (12)

Frage von planetIT2016 zum Thema Windows Server ...