Top-Themen

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

Datum per Batch auslesen und anzeigen

Frage Entwicklung Batch & Shell

Mitglied: Schuralv

Schuralv (Level 1) - Jetzt verbinden

24.04.2013 um 07:24 Uhr, 2700 Aufrufe, 8 Kommentare

Hallo Leute ich hab mal eine Frage an euch.
Ich möchte per batch eine Datei in einem bestimmten Pfad suchen und das letzte Änderungsdatum der Datei ausgeben lassen.
Komme bis:

:start
CLS
@echo off
echo.
echo
echo # Datei Suchen #
echo
echo Gib Datei ein:
set /p dat=
echo Datei: %DAT%
dir \D\Daten\%DAT%.* > dat.txt
dir *.txt|findstr /i dat.txt
pause
goto start

dies gibt jedoch nur jedesmal das Datum des letzten zugriffes, also jedes mal das aktuelle Datum

noch einen zusatz wie 284 dat.txt der vorzugsweiße ausgeblendet werden sollte.


Bitte um Eure Mithilfe
Mitglied: Endoro
24.04.2013 um 07:56 Uhr
Hallo Schuralv,

ich hatte mal ein Progrämmchen geschrieben, welches die unterschiedlichen Zeiten vom Verzeichniseintrag anzeigt und vergleicht.

  1. Normal: was zeigt "dir" ohne Parameter an
  2. Erzeugt [/TC]: wann wurde die Datei/der Ordner erzeugt
  3. Lesen [/TA]: wann gelesen
  4. Schreiben [/TW]: letzter Schreibzugriff

Das Script kann entweder mit einem der o.g. Parameter aufgerufen werden oder ohne. Abweichungen zur Anzeige ohne Parameter werden markiert.

Am Code kannst du sehen, wie solche Abfragen gestaltet werden können.

01.
@echo off &setlocal 
02.
set "dirparms=/4 /TC /TA /TW" 
03.
 
04.
for %%a in (/4 /TC /TA /TW) do ( 
05.
 for /f "tokens=1-3*" %%i in ('dir /ON %%a^| findstr /br [0-9]') do ( 
06.
	set "$files_%%a_%%l=%%l" 
07.
	set "$dates_%%a_%%l=%%i" 
08.
	set "$times_%%a_%%l=%%j" 
09.
10.
11.
call:formatLabel normal "Normal" 
12.
call:formatLabel erzeugt "Erzeugt [/TC]" 
13.
call:formatLabel lesen "Lesen [/TA]" 
14.
call:formatLabel schreiben "Schreiben [/TW]" 
15.
if not "%~1"=="" goto:%~1 
16.
 
17.
echo(%normal%%erzeugt%%lesen%%schreiben% 
18.
for /f "tokens=1*delims==" %%i in ('set $files_/4_') do ( 
19.
	setlocal enabledelayedexpansion 
20.
	if not "!$dates_/4_%%j!!$times_/4_%%j!"=="!$dates_/TC_%%j!!$times_/TC_%%j!" (set "TCflag=*") else set "TCflag= " 
21.
	if not "!$dates_/4_%%j!!$times_/4_%%j!"=="!$dates_/TA_%%j!!$times_/TA_%%j!" (set "TAflag=*") else set "TAflag= " 
22.
	if not "!$dates_/4_%%j!!$times_/4_%%j!"=="!$dates_/TW_%%j!!$times_/TW_%%j!" (set "TWflag=*") else set "TWflag= " 
23.
	echo(!$dates_/4_%%j! !$times_/4_%%j!   !$dates_/TC_%%j! !$times_/TC_%%j!!TCflag!  !$dates_/TA_%%j! !$times_/TA_%%j!!TAflag!  !$dates_/TW_%%j! !$times_/TW_%%j!!TWflag!  %%j 
24.
	endlocal 
25.
26.
goto:eof 
27.
 
28.
:formatLabel 
29.
for /f "delims=:" %%i in ('^(echo(%~2^&echo(^)^|findstr /o $') do set /a len=%%i-3 
30.
setlocal enabledelayedexpansion 
31.
for /l %%i in (%len%,1,18) do set "lf=!lf! " 
32.
endlocal &set "%1=%~2%lf% 
33.
exit /b 
34.
 
35.
:tc 
36.
echo(%normal%  %erzeugt% 
37.
for /f "tokens=1*delims==" %%i in ('set $files_/4_') do ( 
38.
	setlocal enabledelayedexpansion 
39.
	if not "!$dates_/4_%%j!!$times_/4_%%j!"=="!$dates_/TC_%%j!!$times_/TC_%%j!" (set "flag=***") else set "flag=   " 
40.
	echo(!$dates_/4_%%j! !$times_/4_%%j! !flag! !$dates_/TC_%%j! !$times_/TC_%%j! !flag! %%j 
41.
	endlocal 
42.
43.
goto:eof 
44.
 
45.
:ta 
46.
echo(%normal%  %lesen% 
47.
for /f "tokens=1*delims==" %%i in ('set $files_/4_') do ( 
48.
	setlocal enabledelayedexpansion 
49.
	if not "!$dates_/4_%%j!!$times_/4_%%j!"=="!$dates_/TA_%%j!!$times_/TA_%%j!" (set "flag=***") else set "flag=   " 
50.
	echo(!$dates_/4_%%j! !$times_/4_%%j! !flag! !$dates_/TA_%%j! !$times_/TA_%%j! !flag! %%j 
51.
	endlocal 
52.
53.
goto:eof 
54.
 
55.
:tW 
56.
echo(%normal%  %schreiben% 
57.
for /f "tokens=1*delims==" %%i in ('set $files_/4_') do ( 
58.
	setlocal enabledelayedexpansion 
59.
	if not "!$dates_/4_%%j!!$times_/4_%%j!"=="!$dates_/TW_%%j!!$times_/TW_%%j!" (set "flag=***") else set "flag=   " 
60.
	echo(!$dates_/4_%%j! !$times_/4_%%j! !flag! !$dates_/TW_%%j! !$times_/TW_%%j! !flag! %%j 
61.
	endlocal 
62.
63.
goto:eof 
64.
 
65.
endlocal
Ich habe das nur zum privaten Gebrauch gedacht, es erfüllt also keine wie auch immer gearteten professionellen Ansprüche. Viel Spass.


Gruss!
Bitte warten ..
Mitglied: Schuralv
24.04.2013 um 08:14 Uhr
Vielen Dank für die schnelle Antwort.
Damit ich das richtig verstehe muss ich einfach dir mit /TW ergänzen?
also:

:start
CLS
echo off
echo.
echo
echo # Datei Suchen #
echo
echo Gib Datei ein:
set /p dat=
echo Datei: %DAT%
dir /TW \D\Daten\%DAT%.* > dat.txt
dir *.txt|findstr /i dat.txt
pause
goto start
Bitte warten ..
Mitglied: Endoro
24.04.2013 um 08:25 Uhr
Den Zwischenschritt mit "dat.txt" kannst du auch einsparen, zB.:

01.
dir /TW file.txt | findstr /i file.txt
Bitte warten ..
Mitglied: Schuralv
24.04.2013 um 08:45 Uhr
Jawohl super danke

kleine Frage noch
der gibt mir dann noch 0 file.txt aus rechts vom Datum, kann man das noch irgendwie ausblenden?
Bitte warten ..
Mitglied: Endoro
24.04.2013 um 09:13 Uhr
Du kannst den Befehl dazu einfach in eine Forschleife packen und dir den ersten Token ausgeben lassen (was standardmässig passiert):

01.
for /f %%i in ('dir /TW file.txt ^| findstr /i file.txt') do echo %%i
Gruss!
Bitte warten ..
Mitglied: Schuralv
24.04.2013 um 09:20 Uhr
super das einzige was noch fehlt ist die uhrzeit dann wäre die Sache erledigt
Bitte warten ..
Mitglied: Endoro
24.04.2013 um 09:26 Uhr
Es kommt darauf an, welches Zeitformat du eingestellt hast. Bei den europäischen Formaten genügt der zweite Token. Wenn du ein Zeitformat mit "AM/PM" eingestellt hast, wirst du auch noch den dritten brauchen. Für Europa also:

01.
for /f "tokens=1,2" %%i in ('dir /TW file.txt ^| findstr /i file.txt') do echo %%i %%j
.. und für USA, Japan:
01.
for /f "tokens=1-3" %%i in ('dir /TW file.txt ^| findstr /i file.txt') do echo %%i %%j %%k

Gruss!
Bitte warten ..
Mitglied: Schuralv
24.04.2013 um 09:34 Uhr
Der erste hat gereicht.
Ich danke dir vielmals für die Hilfe
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Batch xls nach aktuellem Datum auslesen und email senden
gelöst Frage von michi-ffmBatch & Shell14 Kommentare

Hallo Leute, ich hänge schon seid langem an diesem Skript. Da meine Batch Kenntnisse miserabel sind brauche ich eure ...

Batch & Shell
Datum in Datei speichern und wieder auslesen
gelöst Frage von AndroxinBatch & Shell3 Kommentare

Moinsen, ich spiele gerade ein wenig mit der Powershell und Zeitstempeln rum: Zeitstempel mit Get-Date erstellen, als String in ...

Batch & Shell
(Batch) Datum Sortier-Mechanismus
gelöst Frage von clragonBatch & Shell19 Kommentare

Hallo zusammen. Ich bin schon etwas länger am Batch schreiben, und war schon oft uneingeloggt hier, und jetzt hab ...

Batch & Shell
Bestimmtes Datum von einem file auslesen - Linux
gelöst Frage von lapvikaBatch & Shell9 Kommentare

Hallo zusammen, ich möchte mir in Linux aus der /var/log/messages Dateiinhalte der letzten 24 Stunden anzeigen lassen, alles was ...

Neue Wissensbeiträge
Perl

Perl hat heute Geburtstag: 30 Jahre Perl: Lange Gesichter zum Geburtstag

Information von Penny.Cilin vor 3 StundenPerl2 Kommentare

Hallo, auch wenn es wenige wissen und noch weniger Leute es nutzen. Perl hat heute Geburtstag. 30 Jahre Perl ...

Sicherheit

Blackberry stirbt - Keine Updates für Priv mehr

Tipp von certifiedit.net vor 3 StundenSicherheit

Blackberry wird zu einer 08/15 Firma und geht wohl mehr und mehr den Weg, den HTC schon ging. Von ...

Windows 10

Autsch: Microsoft bündelt Windows 10 mit unsicherer Passwort-Manager-App

Tipp von kgborn vor 2 TagenWindows 1010 Kommentare

Unter Microsofts Windows 10 haben Endbenutzer keine Kontrolle mehr, was Microsoft an Apps auf dem Betriebssystem installiert (die Windows ...

Sicherheits-Tools

Achtung: Sicherheitslücke im FortiClient VPN-Client

Tipp von kgborn vor 2 TagenSicherheits-Tools

Ich weiß nicht, wie häufig die NextGeneration Endpoint Protection-Lösung von Fortinet in deutschen Unternehmen eingesetzt wird. An dieser Stelle ...

Heiß diskutierte Inhalte
Batch & Shell
Kann man mit einer .txt Datei eine .bat Datei öffnen?
gelöst Frage von HelloWorldBatch & Shell20 Kommentare

Wie schon im Titel beschrieben würde ich gerne durch einfaches klicken auf eine Text oder Word Datei eine Batch ...

LAN, WAN, Wireless
WLAN Reichweite erhöhen mit neuer Antenne
gelöst Frage von gdconsultLAN, WAN, Wireless12 Kommentare

Hallo, ich besitze einen TL-WN722N USB-WLAN Dongle mit einer richtigen Antenne. Ich frage mich jetzt ob man die Reichweite ...

Netzwerkgrundlagen
Belibiges Teilnetz einer Subnetzmaske rausfinden?
Frage von CenuzeNetzwerkgrundlagen10 Kommentare

Wundervollen Gutentag, mittlerweile kann ich Subnetting so einigermaßen, aber ein Problem habe ich noch. Netzwerkadresse und Boradcast errechnen ist ...

Windows Server
Logging von "gesendeten Nachrichten" auf Terminalservern
Frage von Z3R0C0MM4N0THiN6Windows Server9 Kommentare

Hallo zusammen, kann mir jemand auf kurzem Wege sagen ob 1) die per Task-Manager (oder damals tsadmin) an Benutzer ...