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

Zwei oder eine Datei in Datum- und Uhrzeit vergleichen oder, wie lange dauerte der Datei-Transfer bzw. der Schreibprozeß?

Mitglied: max5moritz

max5moritz (Level 1) - Jetzt verbinden

25.01.2013, aktualisiert 22:15 Uhr, 7282 Aufrufe, 1 Danke

Manchmal ist es wichtig zu wissen, wie lange ein bestimmter Prozeß gedauert hat.
Die Umwandlung von einer Datei in eine andere oder der reine Schreibprozeß.

Der Dir-Befehl liefert mit /tc den Beginn und mit /tw den letzten Schreibzugriff einer Datei.
Dies nutzt der folgende Skript aus, um daraus die Dauer in min oder in der Form 00:00 h darzustellen.

Dass ich dabei für den /tw-Teil zwei Varianten (Zeile 39-43 bzw. 50-57) vorschlage, soll nur die verschiedenen Möglichkeiten darstellen. Welche davon Euch gefällt, müsst Ihr selbst entscheiden. Im Ergebnis sind beide gleich.

Die kürzere Variante haben wir @rubberman zu danken. Danke für die Mithilfe.

Ich hoffe, die Variablen erklären sich selbst?

Media1 oder ..2 sind mit der Endung einzugeben. Die Ableitung exc und oxc werden
durch den Skript abgeleitet. Anders als bei Übergaben durch eine andere Batch sind durch die set /p-Abfragen keine "Anführungszeichen" notwendig. Sie schaden aber auch nicht.

ATxx: ZeitWerte der 1.Datei, BTxx: ZeitWerte der 2.Datei, DTxx: Zeit-Differenzen, xxGm Gesamtzeit in min
xxdd: Tag, xxmm Monat, xxjj Jahr, xxSJ Schaltjahr (no), xx1h Stunde, xx1m Minute

Falls noch Fragen sind - immer her damit.

01.
@echo off&setlocal enabledelayedexpansion 
02.
set "info=no" 
03.
:Anfang 
04.
FOR /f "delims==" %%i IN ('set Media') DO @set "%%i=" 
05.
cls & if not "%info%"=="no" %info% 
06.
set "info=cls&echo.&echo  Bitte einen Dateinamen eingeben." 
07.
set "inf1=cls&echo.&echo  Die Datei ist nicht vorhanden.&echo." 
08.
set "inf2= und&echo  die Datei-Endung nicht vergessen.&echo." 
09.
if "%~1"=="" set /P Media1= Welche 1. Datei?   
10.
if not "%~1"=="" set "Media1=%~1" 
11.
if "%Media1%"=="" goto :Anfang 
12.
if not exist "%Media1%" set "info=%inf1%"& goto :Anfang 
13.
if "%~2"=="" set /P Media2= Welche 2. Datei?   
14.
if not "%~2"=="" set "Media2=%~2" 
15.
if "%Media2%"=="" if not "%Media1%"=="" set "Media2=%Media1%" 
16.
if "%Media1:~-4,1%"=="." set "EXC=%Media1:~-3,3%" 
17.
if "%Media2:~-4,1%"=="." set "OXC=%Media2:~-3,3%" 
18.
if "%EXC%"=="" set "info=%info:~0,-1%%inf2%"& goto :Anfang 
19.
if "%OXC%"=="" set "info=%info:~0,-1%%inf2%"& goto :Anfang 
20.
 
21.
cls & echo. 
22.
FOR /f "tokens=1-5 delims=.: " %%i IN ('dir /tc "%Media1%"^|find /i ".%exc%"') DO @( 
23.
	set /a "ATdd = 100%%i, ATdd %%= 100, ATmm = 100%%j, ATmm %%= 100, AT1h = 100%%l, AT1h %%= 100, AT1m = 100%%m, AT1m %%= 100" 
24.
	set /A ATjj=%%k/4*4 
25.
	if not !ATjj! equ %%k set "ATSJ=no"  
26.
27.
set /A ATGm=(!AT1h!*60)+!AT1m! 
28.
echo ATdd: --%ATdd%--&echo ATmm: --%ATmm%--&echo ATSJ: --%ATSJ%--&echo AT1h: --%AT1h%--&echo AT1m: --%AT1m%-- 
29.
echo -------------- 
30.
echo ATGm: %ATGm% min 
31.
echo ============== 
32.
 
33.
set /P next= Variante 1 oder 2? & echo. 
34.
if "%next%"=="" set "next=1" 
35.
goto :next%next% 
36.
 
37.
:next1 
38.
echo next-1 
39.
FOR /f "tokens=1-5 delims=.: " %%i IN ('dir /tw "%Media2%"^|find /i ".%oxc%"') DO @( 
40.
	set /a "BTdd = 100%%i, BTdd %%= 100, BTmm = 100%%j, BTmm %%= 100, BT1h = 100%%l, BT1h %%= 100, BT1m = 100%%m, BT1m %%= 100" 
41.
	set /A BTjj=%%k/4*4 
42.
	if not !BTjj! equ %%k set "BTSJ=no"  
43.
44.
 
45.
set /A next=%next%+2 
46.
goto :next%next% 
47.
 
48.
:next2 
49.
echo next-2 
50.
For /F "tokens=1-5 Delims=.: " %%i in ('dir /tw "%Media2%"^|Find /i ".%oxc%"') Do @( 
51.
	set /A BTdd=1%%i-100 
52.
	set /A BTmm=1%%j-100 
53.
	set /A BTjj=%%k/4*4 
54.
	set /A BT1h=1%%l-100 
55.
	set /A BT1m=1%%m-100 
56.
	if not !BTjj! equ %%k set "BTSJ=no"  
57.
58.
 
59.
:next3 
60.
set /A BTGm=(%BT1h%*60)+%BT1m% 
61.
echo BTdd: --%BTdd%--&echo BTmm: --%BTmm%--&echo BTSJ: --%BTSJ%--&echo BT1h: --%BT1h%--&echo BT1m: --%BT1m%-- 
62.
echo -------------- 
63.
echo BTGm: %BTGm% min 
64.
if %ATmm% lss %BTmm% @( 
65.
	FOR %%i IN (4,6,9,11) DO @if %ATmm% equ %%i set A1dd=30 
66.
	FOR %%i IN (1,3,5,7,8,10,12) DO @if %ATmm% equ %%i set A1dd=31 
67.
	if %ATmm% equ 2 if "%ATSJ%"=="no" (set "A1dd=28") ELSE set "A1dd=29" 
68.
	set /A DTdd=%BTdd%+!A1dd!-%ATdd% 
69.
	) ELSE ( 
70.
	if %ATmm% gtr %BTmm% (set /A DTdd=%BTdd%+31-%ATdd% 
71.
	) ELSE set /A DTdd=%BTdd%-%ATdd% 
72.
73.
if "%DTdd%" equ "0" (set /A DTGm=%BTGm%-%ATGm%) ELSE set /A DTGm=(DTdd*24*60)+%BTGm%-%ATGm% 
74.
echo. 
75.
echo Dauer: %DTGm% min 
76.
echo =================================== 
77.
if %DTGm% LSS 60 goto :tim1 
78.
set /A STD=%DTGm%/60 
79.
set /A MIN=%DTGm%-(!STD!*60) 
80.
set /A MIN=1%min%-100 
81.
:tim1 
82.
if %DTGm% LSS 60 (if "%DTGm%" equ "0" (set "Dauer=keine Minute") ELSE set "Dauer=%DTGm% min" 
83.
				) ELSE set "Dauer=%std%:%min% h" 
84.
if "%Media1%"=="%Media2%" (set "Dauer=Der Prozeá hat %Dauer% gedauert.") ELSE set "Dauer=Die Umwandlung hat %Dauer% gedauert." 
85.
endlocal& set "Dauer=%Dauer%"&echo.&echo  %Dauer%&echo.&if "%DTGm%" neq "0" set "DTGm=%DTGm%"  
86.
:Ende 
87.
pause
Die Pause am :Ende sollte vielleicht bei aktiver Verwendung entfernt werden,
ausser, Ihr wollt sie so im Explorer verwenden.

Meine Variante wäre diese:

01.
@echo off&setlocal enabledelayedexpansion 
02.
set "info=no" 
03.
:Anfang 
04.
FOR /f "delims==" %%i IN ('set Media') DO @set "%%i=" 
05.
cls & if not "%info%"=="no" %info% 
06.
set "info=cls&echo.&echo  Bitte einen Dateinamen eingeben." 
07.
set "inf1=cls&echo.&echo  Die Datei ist nicht vorhanden.&echo." 
08.
set "inf2= und&echo  die Datei-Endung nicht vergessen.&echo." 
09.
if "%~1"=="" set /P Media1= Welche 1. Datei?   
10.
if not "%~1"=="" set "Media1=%~1" 
11.
if "%Media1%"=="" goto :Anfang 
12.
if not exist "%Media1%" set "info=%inf1%"& goto :Anfang 
13.
if "%~2"=="" set /P Media2= Welche 2. Datei?   
14.
if not "%~2"=="" set "Media2=%~2" 
15.
if "%Media2%"=="" if not "%Media1%"=="" set "Media2=%Media1%" 
16.
if "%Media1:~-4,1%"=="." set "EXC=%Media1:~-3,3%" 
17.
if "%Media2:~-4,1%"=="." set "OXC=%Media2:~-3,3%" 
18.
if "%EXC%"=="" set "info=%info:~0,-1%%inf2%"& goto :Anfang 
19.
if "%OXC%"=="" set "info=%info:~0,-1%%inf2%"& goto :Anfang 
20.
 
21.
cls & echo. 
22.
FOR /f "tokens=1-5 delims=.: " %%i IN ('dir /tc "%Media1%"^|find /i ".%exc%"') DO @( 
23.
	set /a "ATdd = 100%%i, ATdd %%= 100, ATmm = 100%%j, ATmm %%= 100, AT1h = 100%%l, AT1h %%= 100, AT1m = 100%%m, AT1m %%= 100" 
24.
	set /A ATjj=%%k/4*4 
25.
	if not !ATjj! equ %%k set "ATSJ=no"  
26.
27.
set /A ATGm=(!AT1h!*60)+!AT1m! 
28.
echo ATdd: --%ATdd%--&echo ATmm: --%ATmm%--&echo ATSJ: --%ATSJ%--&echo AT1h: --%AT1h%--&echo AT1m: --%AT1m%-- 
29.
echo -------------- 
30.
echo ATGm: %ATGm% min 
31.
echo ============== 
32.
 
33.
FOR /f "tokens=1-5 delims=.: " %%i IN ('dir /tw "%Media2%"^|find /i ".%oxc%"') DO @( 
34.
	set /a "BTdd = 100%%i, BTdd %%= 100, BTmm = 100%%j, BTmm %%= 100, BT1h = 100%%l, BT1h %%= 100, BT1m = 100%%m, BT1m %%= 100" 
35.
	set /A BTjj=%%k/4*4 
36.
	if not !BTjj! equ %%k set "BTSJ=no"  
37.
38.
set /A BTGm=(!BT1h!*60)+!BT1m! 
39.
echo BTdd: --%BTdd%--&echo BTmm: --%BTmm%--&echo BTSJ: --%BTSJ%--&echo BT1h: --%BT1h%--&echo BT1m: --%BT1m%-- 
40.
echo -------------- 
41.
echo BTGm: %BTGm% min 
42.
 
43.
if %ATmm% lss %BTmm% @( 
44.
	FOR %%i IN (4,6,9,11) DO @if %ATmm% equ %%i set A1dd=30 
45.
	FOR %%i IN (1,3,5,7,8,10,12) DO @if %ATmm% equ %%i set A1dd=31 
46.
	if %ATmm% equ 2 if "%ATSJ%"=="no" (set "A1dd=28") ELSE set "A1dd=29" 
47.
	set /A DTdd=%BTdd%+!A1dd!-%ATdd% 
48.
	) ELSE ( 
49.
	if %ATmm% gtr %BTmm% (set /A DTdd=%BTdd%+31-%ATdd% 
50.
	) ELSE set /A DTdd=%BTdd%-%ATdd% 
51.
52.
if "%DTdd%" equ "0" (set /A DTGm=%BTGm%-%ATGm%) ELSE set /A DTGm=(DTdd*24*60)+%BTGm%-%ATGm% 
53.
echo. 
54.
echo Dauer: %DTGm% min 
55.
echo =================================== 
56.
if %DTGm% LSS 60 goto :tim1 
57.
set /A STD=%DTGm%/60 
58.
set /A MIN=%DTGm%-(!STD!*60) 
59.
set /A MIN=1%min%-100 
60.
:tim1 
61.
if %DTGm% LSS 60 (if "%DTGm%" equ "0" (set "Dauer=keine Minute") ELSE set "Dauer=%DTGm% min" 
62.
				) ELSE set "Dauer=%std%:%min% h" 
63.
if "%Media1%"=="%Media2%" (set "Dauer=Der Prozeá hat %Dauer% gedauert.") ELSE set "Dauer=Die Umwandlung hat %Dauer% gedauert." 
64.
endlocal& set "Dauer=%Dauer%"&echo.&echo  %Dauer%&echo.&if "%DTGm%" neq "0" set "DTGm=%DTGm%"  
65.
:Ende
Der Befehl vor dem ":Ende" bewirkt den Erhalt der Variablen %Dauer% und %DTGm% für die weitere Verwendung.
Alle anderen Variablen sind durch den Lokalschluss endlocal hinweggefegt.
Den Eingangsbereich (Zeilen 1-20) verwende ich nicht, da ich diesen Dateien-Check innerhalb einer anderen Batch nutze.
Doch dazu ein andermal mehr.

Viel Spaß beim Testen. Fehlerhinweise und Verbesserungsvorschläge sind wie immer gern gesehen.

max5moritz
Ähnliche Inhalte
Microsoft

Große Dateien unter Windows leer machen

Tipp von mic.weMicrosoft6 Kommentare

Ich habe einen Win2k3 Testserver auf dem u.a. ein Oracle-DBMS läuft. Mit der Zeit wächst das Verzeichnis immer mehr ...

Batch & Shell

Umlaute in cmd-Datei darstellen

Tipp von frankenfrankBatch & Shell15 Kommentare

Umlaute lassen sich mit cmd sehr einfach darstellen. Es ist keine Konvertierung oder ein drittres Programm nötig. Der folgende ...

Viren und Trojaner

CryptoLocker und seine wechselnden Datei-Endungen

Erfahrungsbericht von TharenViren und Trojaner25 Kommentare

Hallo, aus aktuellem Anlass hier ein Screenshot eines vor kurzem bemerkten Falls der LOCKY-Familie (siehe Bilder) interessant ist, dass ...

Microsoft Office

Excel 2016: Doppelklick - Datei wird geöffnet aber Inhalt wird nicht dargestellt

Erfahrungsbericht von seakerMicrosoft Office6 Kommentare

Liebe IT-Community, da mich das einige Tage gekostet hat herauszufinden was los war, hoffe ich Euch hiermit etwas Zeit ...

Neue Wissensbeiträge
Humor (lol)
IoT-Gefahr: Smartes Aquarium leckt!
Information von Lochkartenstanzer vor 2 TagenHumor (lol)3 Kommentare

Moin, Die IoT-Manie hat weitere Opfer gefunden. Ein Casino-Leck durch ein smartes Aquarium: Allerdings haben sie kein Wasser, sondern ...

Router & Routing

Alte Fritzbox 7270 mit VPN und SIP-Telefonie hinter O2 Homebox 6641 als "Modem"

Erfahrungsbericht von the-buccaneer vor 2 TagenRouter & Routing3 Kommentare

Nun war es soweit: Auch O2 hat mich mit VOIP zwangsbeglückt. Heute am Privatanschluss, in 2 Wochen ist das ...

Sicherheit

Ungepatchte Remote Code Execution-Lücke in LG NAS

Information von kgborn vor 3 TagenSicherheit

Nutzt wer LG NAS-Einheiten? In den NAS-Einheiten der LG Network Storage-Einheiten gibt es eine sehr unschöne Schwachstelle, die einen ...

Windows Update

Neue Version KB4099950 NIC Einstellungen gehen verloren

Information von sabines vor 3 TagenWindows Update2 Kommentare

Es ist eine neue Version des KB4099950 verfügbar, die das Problem mit den verlorenen Netzwerkeinstellungen lösen soll. Das Datum ...

Heiß diskutierte Inhalte
Netzwerkgrundlagen
VLAN - Offene Fragen
Frage von KnettenbrechNetzwerkgrundlagen16 Kommentare

Hallo zusammen, ich befasse mich derzeit mit dem Thema VLAN. Hierzu habe ich schon einige Guides gelesen, einschließlich des ...

Netzwerkmanagement
Netzwerkmanagment im Haus mit Switch, Panel und pfsense
gelöst Frage von CorraggiounoNetzwerkmanagement16 Kommentare

hi zusammen, wir sind gerade dabei das ganze Haus bzw. die einzelnen Zimmer mit netzwerkdosen zu versorgen. Vom Keller ...

Google Android
Empfehlung: Android Ortungsapp
gelöst Frage von certifiedit.netGoogle Android13 Kommentare

Guten Morgen, grundsätzlich vorweg, ich wollte mich eben schlau machen, bzgl einer Ortungsapp, welche Androidbasiert einem anderen Androidsmartphone mitteilt, ...

Vmware
Server 2008 r2 vmware terminalserver
Frage von MasterCVmware12 Kommentare

Guten Abend zusammen, ich hoffe , dass einer von euch mir weiterhelfen kann ,bei meinem kack Problem ! Ist ...