hoffi3d
Goto Top

Abfrage nach Änderungsdatum + Aktion

Hallo zusammen,

ich benötige eine Batch Datei, die bei zwei Dateien(Name ist bekannt und immer gleich, im Ordner gibt es noch mehr Dateien) das Änderungsdatum prüft.
Sollte das Änderungsdatum <heute() sein müsste ich eine Aktion ausführen können. Z.b. einen Text ausgeben.
Andernfalls würde ich nur einen Eintrag in eine *txt Datei brauchen.

Kann mir hier jemand helfen?

Content-Key: 266579

Url: https://administrator.de/contentid/266579

Printed on: April 25, 2024 at 06:04 o'clock

Mitglied: 114757
114757 Mar 17, 2015 updated at 16:08:12 (UTC)
Goto Top
Powershell:
$files = gci 'C:\Ordner' -Include 'Datei1.txt','Datei2.txt' | ?{$_.LastWriteTime -lt (get-date).Date}  
if ($files){
     $files | %{write-host "Datei $($_.Name) ist älter als heute"}  
}else{
    set-content "C:\textdatei.txt" -Value "Schreibe das in die Textdatei"  
}
Mit Batch hatten wird das schon x-mal, einfach mal die Suche bemühen:


Gruß jodel32
Member: hoffi3d
hoffi3d Mar 18, 2015 updated at 07:33:04 (UTC)
Goto Top
Hallo,

leider benötige es in batch :/

Ich habe es mit folgendem Code probiert(abgeändert von mir)
Leider schließt sich die bat sofort wieder und ich weiß nicht wieso

set begin_date=%date%
Set begin_time=%time%
Set config=d:\Database\pruefung_alter\config.txt

for /f "delims== tokens=1,2" %%i in ('findstr "1_niederlassung" %config%') do set niederlassung=%%j  
for /f "delims== tokens=1,2" %%i in ('findstr "2_blat_datei" %config%') do set blat=%%j  
for /f "delims== tokens=1,2" %%i in ('findstr "3_error_datei_pfad" %config%') do set error_datei_pfad=%%j  
for /f "delims== tokens=1,2" %%i in ('findstr "4_arbeits_pfad" %config%') do set arbeits_pfad=%%j  
for /f "delims== tokens=1,2" %%i in ('findstr "5_datei_pfad" %config%') do set datei_pfad=%%j  
for /f "delims== tokens=1,2" %%i in ('findstr "6_datei1" %config%') do set datei1=%%j  
for /f "delims== tokens=1,2" %%i in ('findstr "7_datei2" %config%') do set datei2=%%j  
for /f "delims== tokens=1,2" %%i in ('findstr "8_log_datei_name" %config%') do set logdatei=%%j  




set log=%error_datei_pfad%%logdatei%
set Dateien=""%dateipfad%%datei1%","%dateipfad%%datei2%"  
set Vergleich=%date%
if exist %Log% del %Log%


for %%i in (%Dateien%) do if exist %%i ( 

  echo %%~ti|findstr /b "%Vergleich%">nul || echo Abweichendes Datum: %%i   

) else ( 
    >>"%Log% echo Nicht gefunden: %%i   
) 

if exist "%Log%" notepad "%Log%"  

Pause

Config:
Config_Prüfung_Alter

!!Arbeitspfad muss D:\Database\pruefung_alter sein und config muss unter d:\sicherung\config.txt liegen!!
!!d:\Database\pruefung_alter\#logs muss vorhanden!!
!!Umlaute vermeiden!!

1_niederlassung=nl01
2_blat_datei=D:\Database\Mailjobs\Mail_MB\blat.exe
3_error_datei_pfad=d:\Database\pruefung_alter\#logs\
4_arbeits_pfad=d:\Database\pruefung_alter\
5_datei_pfad=d:\Database\nl01\
6_datei1=database1.accdb
7_datei2=database2.accdb
8_log_datei_name=log.txt
Member: hoffi3d
hoffi3d Mar 19, 2015 at 13:04:45 (UTC)
Goto Top
Hallo,

schön wäre es wenn mir noch jemand helfen könnte?
Member: Biber
Biber Mar 19, 2015 at 17:16:59 (UTC)
Goto Top
Moin hoffi3d,

es könnte mit einer Kleinigkeit zusammenhängen...
Du setzt eine Variable datei_pfad=%%j in Zeile 09
Du verwendest aber eine Variable set Dateien=""%dateipfad%%datei1%","%dateipfad%%datei2%" in Zeile 18.

Versuch doch mal, jeweils die gleiche zu verwenden, also entweder datei_pfad oder dateipfad

Vielleicht hilfts.

Grüße
Biber
Member: hoffi3d
hoffi3d Mar 20, 2015 at 07:23:31 (UTC)
Goto Top
Hallo Biber,

erstmal vielen Dank für den Tip!
Leider schließt sich das Fenster immernoch ohne jegliche Meldung :/