Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

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 - Dateiname und Erstelldatum auslesen

Frage Entwicklung Batch & Shell

Mitglied: Memo66

Memo66 (Level 1) - Jetzt verbinden

03.12.2013 um 16:03 Uhr, 2859 Aufrufe, 5 Kommentare, 1 Danke

Hallo zusammen,

ich habe folgendes Problem, vielleicht kann mir einer ja weiterhelfen

Ich möchte die Dateinamen und das Erstellungsdatum aller Dateien im einem Verzeichnis in eine csv datei auslesen.

Mit
dir *Verzeichnis* /b /a-d > *Verzeichnis*

schaffe ich es alle Dateien aufzulisten und mit

for %%f in ("Verzeichnis") do echo %%f: %%~tf > *Verzeichnis

schaffe ich es das Datum und die Uhrzeit von EINER Datei auszulesen allerdings wird hier der Pfad mit ausgegeben was auch nicht sein soll.

Wie schaffe ich es diese beiden zu kombinieren??

Gruß Memo
Mitglied: colinardo
03.12.2013, aktualisiert um 17:24 Uhr
Hallo Memo,
01.
REM Codepage ändern damit Umlaute in Dateinamen korrekt übertragen werden 
02.
chcp 1252 
03.
 
04.
for %%a IN ("C:\Verzeichnis\*.*") do @echo "%%~nxa";"%%~ta">>CSVDatei.csv 
05.
 
06.
REM Codepage auf Defaultwert setzen 
07.
chcp 850
soll das Verzeichnis und alle Unterverzeichnisse rekursiv durchlaufen werden kannst du dies so machen:
for /R "C:\Verzeichnis" %%a IN (1) do @(for %%b in ("%%~dpa*") DO @(echo "%%~nxb";"%%~tb">>CSVDatei.csv))
Grüße Uwe
Bitte warten ..
Mitglied: Endoro
04.12.2013, aktualisiert um 06:41 Uhr
Hey, wenn du das Erstelldatum brauchst, sollte wmic verwendet werden, was leider recht langsam ist und bei XP Home erst installiert werden muss (ist ab XP Prof "serienmässig"). Andere hinreichend stabile Methoden hab ich noch nicht gefunden.
01.
@ECHO OFF &SETLOCAL 
02.
cd /d "%userprofile%" 
03.
for /f "tokens=2delims=:" %%a in ('chcp') do set /a mychcp=%%a 2>nul 
04.
chcp 1252 >nul 
05.
(for /f "delims=" %%a in ('dir /b /a-d') do call:process "%%~fa")>filelist.csv 
06.
chcp %mychcp% >nul 
07.
type filelist.csv 
08.
goto:eof 
09.
 
10.
:process 
11.
setlocal 
12.
set "fname=%~1" 
13.
for /f "tokens=2delims=," %%b in ('wmic path cim_datafile where name^="%fname:\=\\%" get creationdate /format:csv^|find "."') do set "crd=%%b" 
14.
echo("%~nx1","%crd:~6,2%.%crd:~4,2%.%crd:~0,4% %crd:~8,2%:%crd:~10,2%:%crd:~12,2%,%crd:~15,4%" 
15.
exit /b
lg.
Bitte warten ..
Mitglied: Memo66
04.12.2013, aktualisiert um 09:02 Uhr
Hallo Uwe,

vielen lieben Dank erstmal

Allerdings wird das Änderungsdatum ausgegeben und nicht das Erstellungsdatum. Ich könnte Wetten, dass das %%~ta geändert werden muss. Haben bisschen experimentiert aber dann wurde gar kein Datum ausgegeben.

@Endoro
das ganze muss ohne zusätzliche Installationen laufen. Aber danke dir auch, vielleicht brauch ich es an einer anderen Stelle

Beste Grüße
Memo
Bitte warten ..
Mitglied: colinardo
04.12.2013 um 09:05 Uhr
Zitat von Memo66:
Allerdings wird das Änderungsdatum ausgegeben und nicht das Erstellungsdatum. Ich könnte Wetten, dass das %%~ta
geändert werden muss.
Ah sorry das hatte ich übersehen, dann musst du es anders machen z.B. so wie Endoro schreibt, die verfügbaren Parameter dafür kannst du dir mit for /? anzeigen lassen:
Oder am besten gleich ganz zur Powershell wechseln, dann hast du dieses gehöddel nicht ...
Zusätzlich wurde die Ersetzung von Verweisen auf FOR-Variablen erweitert. 
Sie können jetzt folgende Syntax verwenden: 
 
    %~I         - Expandiert %I und entfernt alle umschließenden 
                   Anführungszeichen ("). 
    %~fI        - Expandiert %I zu einem vollständigen Dateinamen. 
    %~dI        - erstellt nur den Laufwerkbuchstaben von %I. 
    %~pI        - erstellt nur den Pfad von %I. 
    %~nI        - erstellt nur den Dateinamen von %I. 
    %~xI        - erstellt nur die Dateierweiterung von %I. 
    %~sI        - erstellter Pfad enthält nur kurze Dateinamen. 
    %~aI        - erstellt die Dateiattribute von %I. 
    %~tI        - erstellt Datum und Zeit von %I. 
    %~zI        - erstellt die Dateigröße von %I. 
    %~$PATH:I   - Durchsucht die in der PATH-Umgebungsvariablen 
                   angegebenen Verzeichnisse und expandiert die erste 
                   gefundene Datei %I zu dem vollständigen Dateinamen. 
                   Wenn der Name der Umgebungsvariablen nicht definiert 
                   ist oder diese Datei bei der Suche nicht gefunden wurde, 
                   wird dieser Parameter zu einer leeren Zeichenfolge 
                   expandiert. 
 
Diese Parameter können auch miteinander kombiniert werden: 
 
    %~dpI       - erstellt den Laufwerkbuchstaben und Pfad von %I. 
    %~nxI       - erstellt den Dateinamen und die Dateierweiterung von %I. 
    %~fsI       - Expandiert %I zu einem vollständigen Namen, der nur 
                   kurze Dateinamen enthält. 
    %~dp$PATH:I - Durchsucht die in der PATH-Umgebungsvariablen 
                   angegebenen Verzeichnisse nach %I und erstellt den 
                   Laufwerkbuchstaben und Pfad der ersten gefundenen Datei. 
    %~ftzaI     - Expandiert %I zu einer Zeile, die der Ausgabe des DIR- 
                   Befehls entspricht.
Grüße Uwe
Bitte warten ..
Mitglied: Memo66
04.12.2013 um 09:10 Uhr
Das bringt mich um einiges weiter.

Ich danke dir vielmals, du bist mein Held :P ;)

Gruß Memo
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst In einer Batch-Datei einen variablen Teil eines Dateinamens auslesen (5)

Frage von dh0815 zum Thema Batch & Shell ...

Batch & Shell
gelöst Erstelldatum vieler Dateien ändern (aus Dateinamen abgeleitet) (11)

Frage von X-Spezi zum Thema Batch & Shell ...

Batch & Shell
gelöst Dateinamen auslesen und in einer Schleife benutzen (12)

Frage von TeholBeddict zum Thema Batch & Shell ...

Sonstige Systeme
Batch Dateinamen zerlegen (5)

Frage von Mummel zum Thema Sonstige Systeme ...

Neue Wissensbeiträge
Windows Update

Novemberpatches und Nadeldrucker bereiten Kopfschmerzen

(14)

Tipp von MettGurke zum Thema Windows Update ...

Windows 10

Abhilfe für Abstürze von CDPUsersvc auf Win10 1607 und 2016 1607

(7)

Tipp von DerWoWusste zum Thema Windows 10 ...

RedHat, CentOS, Fedora

Fedora 27 ist verfügbar

Information von Frank zum Thema RedHat, CentOS, Fedora ...

Heiß diskutierte Inhalte
Server
Bilder aus dem Web mit CSV runterladen (30)

Frage von Yannosch zum Thema Server ...

Server-Hardware
Bestehendes Raid erweitern um 4 gleiche Platten! (Verständnis Fragen) (12)

Frage von Hendrik2586 zum Thema Server-Hardware ...

Windows Update
WSUS 4 (Server 2012 R2) - Windows 10 Updates nicht möglich (12)

Frage von c0d3.r3d zum Thema Windows Update ...