Jump to content

Mit Batch File prüfen ob Datei vorhanden


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo,

 

Ich häng gerade an einem Problem undzwar wird täglich eine Datei z.B. c:\test.txt erstellt. Manchmal besteht das Problem das die Datei nicht erstellt wurde und nur mit dem Datum von gestern vorhanden ist. Ich brauch also eine Prüfung die überprüft ob die Datei mit dem aktuellem Datum vorhanden.

 

In dem unteren Beispiel prüfe Ich leider nur auf die Datei und nicht ab das Erstellungsdatum. Gibt es hier einen Batch Befehl?

 

if exist C:\test.txt goto :JA

goto NEIN

 

:JA

echo JA >> c:\ja.txt

exit

 

:NEIN

echo NEIN >> c:\a\nein.txt

exit

 

 

Vielleicht hat jemand einen Tipp

 

 

Danke im Voraus

 

Gruss,

zoran

Link zu diesem Kommentar

Muss es Batch sein?

Mit VB-Script ginge es z.B. so:

 

Set fso = CreateObject("Scripting.FileSystemObject")
Set folder = fso.GetFolder("C:\")

for each file in folder.Files
  if (file.name = "test.txt") and (file.datelastmodified < Date()) then 
   strJaNein ="NEIN" 
 else 
   strJaNein = "JA"
 end if
next
'... Ausgabe von strJaNein nach belieben...

Link zu diesem Kommentar

OK, dann'n Kompromiss:

Eine "testdatum.vbs":

Set fso = CreateObject("Scripting.FileSystemObject")
Set folder = fso.GetFolder("C:\")
for each file in folder.Files
 if file.name = "test.txt" then
   if file.datelastmodified < Date() then varExitCode = 0 else varExitCode = 1
 end if
next
WScript.Quit varExitCode

und eine "testdatum.bat", die aufgerufen wird:

@echo off
call wscript.exe testdatum.vbs
if %ERRORLEVEL%==0 goto NEIN
echo JA > test.log
goto END
:NEIN
echo NEIN > test.log
:end

Link zu diesem Kommentar

Ich hab ne etwas andere frage zu dem Thema, ich habe folgende Aufgabenstellung:

 

Ich soll ein Script schreiben, welches überprüft, ob der User neue Daten erzeugt hat, wenn ja, sollen diesen auf einen Server Kopiert werden.

 

Anschließend soll der Transfer der Daten überprüft werden, sprich ob die Originaldateien mit den kopierten Dateien übereinstimmen. Ist dies alles erledigt soll eine Logfile erstellt werden und per E-Mail versendet werden.

 

Den leichten teil mit dem Kopieren habe ich mit einer Batch Datei gelöst und das funktioniert soweit.

 

Hier ist mein Quelltext, damit ihr seht wie weit ich bin:

 

@echo off

xcopy g:\test\*.* h:\safe /e/s/y/d

FOR /F "tokens=1,2 delims=:" %%d IN ('date /t') DO set dat=%%d

FOR /F "tokens=1,2 delims=:" %%i IN ('time /t') DO set zeit=%%i-%%j

rename h:\safe\safe "%dat%%zeit%.Safe"

FOR /F "skip=2 tokens=*" %%c IN ('DIR /O-D /B h:\safe\*safe') DO (rd h:\safe\"%%c" /s/q)

exit

 

erklärungen in ():

xcopy g:\test\*.* (Start) h:\safe (Ziel) /e/s/y/d (Parameter)

(kopiert das Startverzeichnis zum Zielverzeichnis)

 

FOR /F "tokens=1,2 delims=:" %%d IN ('date /t') DO set dat=%%d

(kreiert eine Variable "dat" = Datum)

 

FOR /F "tokens=1,2 delims=:" %%i IN ('time /t') DO set zeit=%%i-%%j

(kreiert eine Variable "zeit" = Uhrzeit)

 

rename h:\safe\safe "%dat%%zeit%.Safe"

(benennt das soeben kopierte Verzeichnis in "Datum Uhrzeit.Safe" um)

 

FOR /F "skip=2 tokens=*" %%c IN ('DIR /O-D /B h:\safe\*safe') DO (rd h:\safe\"%%c" /s/q)

(legt fest, dass nur die zwei neusten Verzeichnisse bleiben, und die älteren gelöscht werden. Details:

skip=2 = gibt an, dass die zwei neusten übersprungen werden

h:\safe\*Safe' = gibt die zu prüfenden Verzeichnisse an

rd h:\safe\"%%c" /s/q = das ist der Löschbefehl

 

 

Wenn mir jmd helfen könnte wäre ich euch sehr sehr verbunden. Sollte der Thread nicht passen, sagt es mir gleich :)

Link zu diesem Kommentar

Ich würde sagen: Eigentlich solltest Du dafür einen eigenen, neuen Thread aufmachen ;)

 

Gibt es einen Grund, dass das per Script gemacht werden soll?

Eigentlich wäre das doch eine Aufgabe, die am einfachsten mit einer richtigen Datensicherungssoftware (Arcserve o.ä.) gemacht werden könnte. Verifizieren, Log verschicken... wären dort dann nur einfach anzuklickende Optionen.

Link zu diesem Kommentar

Habs grad mal ausprobiert. Bei mir gibtst keine Probleme.

Der Dateiname ist ja in dem Script hart codiert. Wenn ich "test.txt" durch "FA_Export.txt" ersetzte, geht's bei mir nach wie vor.

Solltest Du noch mehr verschiedene Dateien haben, sollte man das hart codierte durch nen Übergabeparameter ersetzen. Sagts Bescheid, dann bieg ich's mal in ner freien Minute um.

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...