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
Kommentar vom Moderator Biber am 30.04.2010 um 10:38:35 Uhr
Datei umbennenen mit Erstelldatum
set /a rgc +=1
666
Diese (An)zahl ist wirklich böse, böse, böse...
Ich möchte gerne alle Dateien eines Ordners umbennenen,...
set /a rgc +=1
667
...aber geht auch schnell vorbei...
Zitat von Turrex0100:
Giebt es eine Möglichkeit eine IF Abfrage einzubauen, damit schon umbennante dateien nicht nocheinmal umbennant werden??
set /a rgc +=2
669
Sauschnell sogar...
GELÖST

Datei umbennenen mit Erstelldatum

Frage Entwicklung Batch & Shell

Mitglied: Turrex0100

Turrex0100 (Level 1) - Jetzt verbinden

30.04.2010, aktualisiert 10:48 Uhr, 3128 Aufrufe, 10 Kommentare

Da ich in den änlichen Beiträgen keine Lösung gefunden habe frage ich hier.

Hallo zusammen.

Ich möchte gerne alle Dateien eines Ordners umbennenen, sodass vor den Namen das erstelldatum gesetzt wird.
Hab mir natürlich auch schon meine gedanken gemacht:

@pushD "%~1"
@for /f "tokens=1,2,3,*" %%a in ('dir *.* /a-d /-c /tc^|find "."') do set "erstdatum=%%a" & ren %%d %erstdatum:~6,4%_%erstdatum:~3,2%_%erstdatum:~0,2%_%%d
@PopD

Nun würde ich gerne wissen ob ihr mir helfen könnt und warum mein skript nicht funktioniert.
Vielen Dank im Vorraus

Grüsse Turrex0100.
Mitglied: bastla
30.04.2010 um 08:55 Uhr
Hallo Turrex0100!
... warum mein skript nicht funktioniert.
Stichwort "DelayedExpansion" ...

Unter Verwendung eines Unterprogrammes sollte es klappen (ungetestet):
01.
@echo off & setlocal 
02.
pushD "%~1" 
03.
for /f "tokens=1,2,3,*" %%a in ('dir *.* /a-d /-c /tc^|find "."') do set "erstdatum=%%a" & call :ProcessFile "%%d" 
04.
PopD 
05.
goto :eof 
06.
 
07.
:ProcessFile 
08.
ren %1 "%erstdatum:~6,4%_%erstdatum:~3,2%_%erstdatum:~0,2%_%~nx1" 
09.
goto :eof
Grüße
bastla
Bitte warten ..
Mitglied: Turrex0100
30.04.2010 um 09:14 Uhr
Danke für die wie immer schnelle Antwort!

Klappt alles wie geplant.
Bitte warten ..
Mitglied: Turrex0100
30.04.2010 um 10:02 Uhr
Giebt es eine Möglichkeit eine IF Abfrage einzubauen, damit schon umbennante dateien nicht nocheinmal umbennant werden??
Bitte warten ..
Mitglied: Snowman25
30.04.2010 um 10:24 Uhr
Wozu?

Eine Datei hat bloß 1 Erstellungsdatum, welches sich auch nicht ändert. (Jedenfalls nicht von selbst)

Gruß
Snow
Bitte warten ..
Mitglied: bastla
30.04.2010 um 10:49 Uhr
@Snowman25
Wozu?
Damit nicht bei jedem Durchlauf am Anfang des Dateinamens nochmals das Datum hinzugefügt wird?

Soferne die Dateien nicht bereits vorher einen "_" im Dateinamen hatten, sollten sich die bereits umbenannten so ausfiltern lassen:
01.
for /f "tokens=1,2,3,*" %%a in ('dir *.* /a-d /-c /tc^|find "."^|find /v "_"') do set "erstdatum=%%a" & call :ProcessFile "%%d"
Grüße
bastla
Bitte warten ..
Mitglied: LotPings
30.04.2010 um 11:10 Uhr
Soferne die Dateien nicht bereits vorher einen "_" im Dateinamen hatten, sollten sich die bereits umbenannten so ausfiltern lassen

Oder man prüft ob das Datum schon da ist:

01.
@echo off & setlocal 
02.
pushD "%~1" 
03.
for /f "tokens=1,2,3,*" %%a in ( 
04.
  'dir *.* /a-d /-c /tc^|find "."' 
05.
     ) do set "erstdatum=%%a" & call :ProcessFile "%%d" 
06.
PopD 
07.
goto :eof 
08.
 
09.
:ProcessFile 
10.
Set "OldName=%~1" 
11.
Set "NewName=%erstdatum:~6,4%_%erstdatum:~3,2%_%erstdatum:~0,2%_%~nx1" 
12.
If "%OldName:~0,10%" EQU "%NewName:~0,10%" goto :Eof 
13.
ren %1 "%NewName%" 
14.
goto :eof
Gruß
LotPings
Bitte warten ..
Mitglied: bastla
30.04.2010 um 11:16 Uhr
@LotPings
Aufwändiger, aber natürlich genauer - wobei ich eher zu einem Ansatz der Art
echo %~nx1|findstr /b "%NewName%">nul && goto :eof
gegriffen hätte ...

Grüße
bastla
Bitte warten ..
Mitglied: LotPings
30.04.2010 um 11:32 Uhr
Zitat von bastla:
Aufwändiger, aber natürlich genauer - wobei ich eher zu einem Ansatz der Art
echo %~nx1|findstr /b "%NewName%">nul && goto :eof
gegriffen hätte ...
Naja Gott sei Dank sind die PCs meist so schnell , daß man nicht darüber debattieren muß ,
ob Aufwand an Zeichen den Aufwand an Zeit bei der Ausführung einer Sub-Shell durch die Pipe überwiegt
Zumindest hat die Verwendung von Old- und NewName einen didaktischen Nutzen (hoffe ich).

Gruß
LotPings
Bitte warten ..
Mitglied: bastla
30.04.2010 um 13:00 Uhr
@LotPings
"Aufwändiger" hatte sich auf die Prüfung per Substring im Vergleich zum Aussortieren der Dateinamen mit "_" bezogen (mit letzterem lässt sich der Unterprogrammaufruf einsparen).

Die "findstr"-Variante bevorzuge ich, weil ich damit nicht auf die Substring-Länge achten muss (obwohl zugegebener Maßen gerade in diesem Fall die Länge mit 10 Zeichen ja "konstant genug" sein sollte, um sie tatsächlich hardcoded zu hinterlegen) ...

Grüße
bastla
Bitte warten ..
Mitglied: Snowman25
30.04.2010 um 13:01 Uhr
Zitat von bastla:
Damit nicht bei jedem Durchlauf am Anfang des Dateinamens nochmals das Datum hinzugefügt wird?
Huch, das hatte ich glatt übersehen. Dachte, die Dateien sollen nur das Erstellungsdatum als Namen haben.

Grüße
bastla

Gruße
Snow
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst In Batch auf Erstelldatum einer Datei prüfen (5)

Frage von AS-N00 zum Thema Batch & Shell ...

Linux
E-Mail zu Datei (3)

Frage von schneerunzel zum Thema Linux ...

Batch & Shell
gelöst Ordner und Datei Name gleich (BATCH) (12)

Frage von clragon zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Installation
Eine etwas (wirklich) speziellere Frage: Windows 10-Installation über (16)

Frage von DerFurrer zum Thema Windows Installation ...

Verschlüsselung & Zertifikate
gelöst Festplattenverschlüsselung im Ausland (13)

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

Multimedia & Zubehör
gelöst Iphone 6 prob (12)

Frage von jensgebken zum Thema Multimedia & Zubehör ...

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

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