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, 6240 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
Microsoft Office
gelöst Dropdownlisten in Abhängigkeit mit Leerzeichen im Namen (Datenüberprüfung) (2)

Frage von kevische zum Thema Microsoft Office ...

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 Leerzeichen in nur bestimmten Spalten entfernen? (2)

Frage von Komoran12 zum Thema Batch & Shell ...

Neue Wissensbeiträge
Linux Netzwerk

Ping und das einstellbare Bytepattern

(1)

Erfahrungsbericht von LordGurke zum Thema Linux Netzwerk ...

Windows Update

Microsoft Update KB4034664 verursacht Probleme mit Multimonitor-Systemen

(3)

Tipp von beidermachtvongreyscull zum Thema Windows Update ...

Viren und Trojaner

CNC-Fräsen von MECANUMERIC werden (ggf.) mit Viren, Trojanern, Würmern ausgeliefert

(4)

Erfahrungsbericht von anteNope zum Thema Viren und Trojaner ...

Heiß diskutierte Inhalte
Microsoft Office
Office Druck fehler (18)

Frage von DaistwasimBusch zum Thema Microsoft Office ...

Netzwerkmanagement
Windows Server 2008 R2: "netsh reset" nicht verfügbar? (11)

Frage von RickTucker zum Thema Netzwerkmanagement ...

Festplatten, SSD, Raid
Uninitialisierte Festplatte - Daten retten (11)

Frage von peterla zum Thema Festplatten, SSD, Raid ...

Microsoft Office
Outlook 2016 in Ordneransicht starten - GPO (9)

Frage von D-Line zum Thema Microsoft Office ...