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

Änderungsdatum von Datei ermitteln - NICHT Erstellungsdatum

Frage Entwicklung Batch & Shell

Mitglied: Baenky

Baenky (Level 1) - Jetzt verbinden

01.07.2009, aktualisiert 14:40 Uhr, 8869 Aufrufe, 11 Kommentare

Hallo zusammen, ich hoffe jmd. kann mir sagen, wie ich hier weiterkomme ... ich denke, es ist nur eine Kleinigkeit...

Ich möchte gerne die beiden Datumsangaben für "geändert am" zweier Dateien vergleichen.

hier im Forum habe ich gesehen, dass ich mir das Datum folgendermaßen ausgeben lassen kann:

for %i in ("%ProgramFiles%\Datei") do @echo %~ti

Es scheint aber leider das "erstellt am"-Datum sein und somit nicht das, was ich brauche...

Ich hab mir meine beiden Dateien angesehen. Als Ausgabe erhalte ich das Erstellungsdatum.

Ich habe auch schon mal wild herumprobiert, von wegen %~tm oder %~tl - so nach dem Motto: könnte "last modified" heißen. Hat natürlich nicht funktioniert

Kann mir jmd. sagen, wie ich dahinter komme? Oder zumindest wonach ich suche könnte...

Danke und Gruß

Nadine
Mitglied: bastla
01.07.2009 um 15:23 Uhr
Hallo baenky und willkommen im Forum!

Eigentlich solltest Du mit "~ti" tatsächlich das Änderungsdatum erhalten ...

Mit der folgenden Zeile kannst Du aber genau (durch die Option "/t" des "dir"-Befehles) festlegen, welches Datum es nun sein soll:
for /f "tokens=1,2" %i in ('dir "%ProgramFiles%\Datei" /tw^|findstr /i /c:" Datei"') do @echo %i_%j
Grüße
bastla
Bitte warten ..
Mitglied: Baenky
01.07.2009 um 15:34 Uhr
Hallo bastla,

Danke für die schnelle Antwort.

Ich kenne mich mit dem Scripting leider noch nicht aus und hab heute das erste mal ins Thema reingeschnuppert... mit Deinem Code erhalte ich die Anzahl der Dateien - kann das sein?

Gruß

Nadine
Bitte warten ..
Mitglied: bastla
01.07.2009 um 18:36 Uhr
Hallo baenky!
mit Deinem Code erhalte ich die Anzahl der Dateien - kann das sein?
Sollte es nicht - wenn Du für "Datei" jeweils einen korrekten Dateinamen inkl. Typ einsetzt, also etwa
Z:\>for /f "tokens=1,2" %i in ('dir "%programfiles%\mozilla firefox\firefox.exe" /tw^|findstr /i /c:" firefox.exe"') do @echo %i_%j
solltest Du auch Datum und Uhrzeit als Ergebnis erhalten.

Grüße
bastla
Bitte warten ..
Mitglied: Baenky
02.07.2009 um 08:13 Uhr
Hallo bastla,

Danke, jetzt bekomme ich die Zeiten - lag aber doch an etwas anderem...war einfach blind

Jetzt muss ich eigentlich nur noch die Daten vergleichen...ich denke dann sollte ich durch sein.

Gruß

Nadine
Bitte warten ..
Mitglied: Biber
02.07.2009 um 08:46 Uhr
Moin Baenky,

willkommen im Forum auch von mir.
Zitat von Baenky:
Jetzt muss ich eigentlich nur noch die Daten vergleichen...
ich denke dann sollte ich durch sein.
Genau genommen erst dann, wenn dieser Beitrag auch einen klitzekleinen Toastbrot-aus-2008-farbenen Haken von Dir erhält.

Grüße
Biber
Bitte warten ..
Mitglied: Baenky
06.07.2009 um 10:54 Uhr
Hallo nochmal,

ich kann jetzt die Daten vergleichen - das klappt, aber leider komme ich nicht mit dem Rest zurecht.

Eigentlich wollte ich eine Sprungmarke anspringen, wenn die Datei-Datumsangaben NICHT gleich sind, aber das klappt nicht:

01.
rem call msiexec /i  \\accfile\ams\Install\acc.CV\Com_CV_Install.msi  
02.
 
03.
@echo off 
04.
setlocal 
05.
 
06.
set AMSDest=%ProgramFiles%\AMS 
07.
set AESDest=%ProgramFiles%\AES 
08.
 
09.
set AMSSrc=K:\Install 
10.
set AESSrc=K:\Install\AES 
11.
 
12.
::Aktionen durchführen, Variable "Datum" aus Dateidatum erhalten, mit % ~ti  
13.
for %i in ("K:\Install\AMS.exe") do set dateRC=%~ti 
14.
for %i in ("%ProgramFiles%\AMS\AMS.exe") do set dateLokal=%~ti 
15.
 
16.
if not "%dateRC%"=="%dateLokal%" goto :doit 
17.
goto :ende 
18.
echo test 
19.
 
20.
:doit  
21.
echo Entferne alte DLL aus Registrierung 
22.
 
23.
 
24.
:ende 
25.
echo endlocal
Die zu vergleichenden Were sind aktuell gleich. Somit sollte doit: übersprungen werden und nur zu ende: gegangen werden. Das ist aber nicht der Fall... mache ich etwas falsch?

Noch eine allgemeine frage: Können nach einer Sprungmarke mehrere Befehle folgen? Das müsste doch eigentlich gehen, weil er nur dahin springt und von da weiter macht, oder?
Bitte warten ..
Mitglied: 80220
06.07.2009 um 11:04 Uhr
Zitat von Baenky:
... mache ich etwas falsch?

Ja.
Im Batch muss für Schleifenvariablen ein doppeltes Prozentzeichen verwendet werden, alse
01.
for %%i in ("K:\Install\AMS.exe") do set dateRC=%%~ti 
02.
for %%i in ("%ProgramFiles%\AMS\AMS.exe") do set dateLokal=%%~ti
In einer Subroutine (Sprungmarke) kannst du auch mehrere Anweisungen verarbeiten.
Bitte warten ..
Mitglied: Baenky
06.07.2009 um 11:05 Uhr
Ok, auch für das %~ti ?

Oder nur für dateLocal und dateRC?

Danke und Gruß

Nadine
Bitte warten ..
Mitglied: 80220
06.07.2009 um 11:07 Uhr
dateLocal und dateRC

Das sind keine Schleifenvariablen, sondern ganz normale Variablen.
Bitte warten ..
Mitglied: Baenky
06.07.2009 um 11:09 Uhr
Danke, jetzt klappt es.

Gruß

Nadine
Bitte warten ..
Mitglied: Biber
06.07.2009 um 11:14 Uhr
Ja.

Schleifenvariablen (=dynamische Laufvariablen) werden von den FOR-Anweisungen generiert und ggf. etwas spezielle ausgegeben.
D.h diese Variablen
  • existieren nur, solange auch die FOR-Anweisung ausgeführt wird
  • heißen am CMD-Prompt "%+ein Nicht-Ziffern-Zeichen" -->%i, %j ..oder %A, %B
  • heißen im Batch "%%+ein Nicht-Ziffern-Zeichen" -->%%i, %%j ..oder %%A, %%B
  • können leicht abgeschrägte Datailwerte liefern (%~ti ---> %%~ti etc)
  • können ein paar Sachen nicht, die mit SET gesetzte Variable mit links schaffen (Substring oder einzelnes Zeichen zurückgeben)


Grüße
Biber
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Webentwicklung
HTML Output in eine txt Datei mit VisualBasicScript (2)

Frage von coca22COCA zum Thema Webentwicklung ...

Informationsdienste
gelöst Aktuelle Firefox MSI Datei!? (8)

Frage von Hendrik2586 zum Thema Informationsdienste ...

Virtualisierung
gelöst VMDK Datei vergrößern auf der Console welche Datei ist die richtige? (3)

Frage von fireskyer zum Thema Virtualisierung ...

Batch & Shell
Ordner erstellen ll Datei hinein kopieren (1)

Frage von heyalice zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (24)

Frage von M.Marz zum Thema Windows Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Erkennung und -Abwehr
Spam mit eigener Domain (12)

Frage von NoobOne zum Thema Erkennung und -Abwehr ...