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, 3124 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 ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

IDE & Editoren
USB STICK Datei AUTOMATISCH beim anschliessen auf fremden PC öffnen (9)

Frage von Jwanner83 zum Thema IDE & Editoren ...

Batch & Shell
Batch-Variable nach Stichworten aus TXT Datei durchsuchen (3)

Frage von Markus5579 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (20)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Festplatten, SSD, Raid
M.2 SSD wird nicht erkannt (14)

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