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

Frage Entwicklung Batch & Shell

Mitglied: Memo66

Memo66 (Level 1) - Jetzt verbinden

03.12.2013 um 16:03 Uhr, 2480 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 ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Batch & Shell
gelöst Batch: Dateiname abhängig vom Änderungsdatum auslesen (6)

Frage von freaktastisch zum Thema Batch & Shell ...

Batch & Shell
Per Batch Textdatei Spaltenweise auslesen nochmal weil ich dumm bin (9)

Frage von PinkFLuffyUnicorn zum Thema Batch & Shell ...

Batch & Shell
Batch Textdatei Spaltenweise auslesen (7)

Frage von PinkFLuffyUnicorn zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (17)

Frage von JayyyH zum Thema Switche und Hubs ...

Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

DSL, VDSL
DSL-Signal bewerten (14)

Frage von SarekHL zum Thema DSL, VDSL ...