Zoran 10 Geschrieben 16. Januar 2008 Melden Teilen Geschrieben 16. Januar 2008 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 Zitieren Link zu diesem Kommentar
humpi 11 Geschrieben 16. Januar 2008 Melden Teilen Geschrieben 16. Januar 2008 Hallo, sollte so gehen: FOR /F "tokens=1,2,3,4 delims=/. " %%a in ('date/T') do set CDATE=%%b%%c%%d if exist C:\test%CDATE%.txt goto :JA Zitieren Link zu diesem Kommentar
Zoran 10 Geschrieben 16. Januar 2008 Autor Melden Teilen Geschrieben 16. Januar 2008 Hallo, Vielen Dank schonmal für die Antwort!!! Jetzt habe ich noch ne Frage: Kann man das auch so lösen das der Dateiname nicht verändert wird??? Danke Gruss Zoran Zitieren Link zu diesem Kommentar
Zoran 10 Geschrieben 17. Januar 2008 Autor Melden Teilen Geschrieben 17. Januar 2008 Hat vielleicht noch jemand einen Tipp??? Zitieren Link zu diesem Kommentar
s.weinschenck 10 Geschrieben 17. Januar 2008 Melden Teilen Geschrieben 17. Januar 2008 Kannst Du die Datei wegkopieren bevor Du die neue Datei hinkopierst? Wenn dann eine Datei da ist weisst Du ja das die aktuelle da ist. Zitieren Link zu diesem Kommentar
Zoran 10 Geschrieben 17. Januar 2008 Autor Melden Teilen Geschrieben 17. Januar 2008 Das Problem ist ich habe auf einem SQL Server folgende Jobs 1. Tabelleninhalt löschen 2. Daten der TXT Datei in Tabelle importieren Das heisst wenn die TXT ausversehen durch das wegkopieren nicht mehr da sein sollte, ist das noch schlimmer wie wenn die Datei einen Tag alt wäre... Weil die SQL Tabelle sonst leer bleiben würde... Zitieren Link zu diesem Kommentar
Cybquest 36 Geschrieben 17. Januar 2008 Melden Teilen Geschrieben 17. Januar 2008 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... Zitieren Link zu diesem Kommentar
Zoran 10 Geschrieben 17. Januar 2008 Autor Melden Teilen Geschrieben 17. Januar 2008 Vielen dank für die ausführliche lösung! das Problem mit VB kenne ich mich garnicht aus!!! Deswegen wäre mir ein Batch File etwas lieber... Hmm ich weiss echt net was ich noch probieren kann!!! Zitieren Link zu diesem Kommentar
humpi 11 Geschrieben 17. Januar 2008 Melden Teilen Geschrieben 17. Januar 2008 Hi, dann schalte doch einen Ordner mit aktuellem Datum vor. Wenn der Ordner leer ist, ist eben keine .txt von heute da. Zitieren Link zu diesem Kommentar
Cybquest 36 Geschrieben 17. Januar 2008 Melden Teilen Geschrieben 17. Januar 2008 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 Zitieren Link zu diesem Kommentar
Zoran 10 Geschrieben 18. Januar 2008 Autor Melden Teilen Geschrieben 18. Januar 2008 Was soll man sagen...außer Perfekt Super Vielen Dank genau das habe Ich gesucht!!! Danke für eure bemühungen Gruss Zitieren Link zu diesem Kommentar
SilenZer 10 Geschrieben 18. Januar 2008 Melden Teilen Geschrieben 18. Januar 2008 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 :) Zitieren Link zu diesem Kommentar
Cybquest 36 Geschrieben 18. Januar 2008 Melden Teilen Geschrieben 18. Januar 2008 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. Zitieren Link zu diesem Kommentar
Zoran 10 Geschrieben 22. Januar 2008 Autor Melden Teilen Geschrieben 22. Januar 2008 Jetzt muss ich doch noch eine Frage stellen: undzwar habe ich auch eine Datei mit der Bezeichnung FA_Export.txt kann das sein das das VB Skript ein Problem mit dem _ Zeichen hat??? Danke Zitieren Link zu diesem Kommentar
Cybquest 36 Geschrieben 22. Januar 2008 Melden Teilen Geschrieben 22. Januar 2008 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. Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.