przychodzę do Was z prośbą o pomoc. Próbuję wy listować pliki, który został utworzony w dniu w którym uruchomi się skrypt z schedulera o danej godzinie.
@echo off
REM Sprawdzanie czy plik istnieje
forfiles /p C:\katalog\podkatalog /m *.* /D +0 /c "cmd /c IF @fsize GEQ 1000000 (echo @file is a million bytes or larger.) ELSE (echo @file is under a million bytes in size.)"
otrzymuję prawidłowe wyniki :
"plik1.roz" is a million bytes or larger.
"plik2.roz" is under a million bytes in size.
Problem polega na tym, że nie chcę zmiennej która sprawdza wielkości pliku tylko użyć zmienną @file
forfiles /p C:\katalog\podkatalog /m *.* /D +0 /c "cmd /c IF @file (echo @file is a million bytes or larger.) ELSE (echo @file is under a million bytes in size.)"
to otrzymuję:
W tym momencie (echo było nieoczekiwane.
W tym momencie (echo było nieoczekiwane.
myślałem, że @file przekaże do IF’a, że pliki istnieją.
Wypisanie pliku pokazuje się dobrze. Jednak ja muszę sprawdzić w jakiś sposób czy plik jest (czy się utworzył). Jeżeli istnieje to dobrze, jeżeli nie to muszę odpalić start.bat który wyśle maila z powiadomieniem o jego braku.
Z listowaniem plików jest wszystko dobrze. Wynik jaki dostaję jest prawidłowy w przypadku gdy on istnieje. Określa to parametr /D +0 (plik utworzony dzisiaj). Jeżeli damy -1 wylistuje wszystkie poprzednie pliki. To akurat jest ok.
Mówię, problem polega w tym, że gdy nie ma pliku to nie wiem co dalej zrobić.
Jeszcze problemem jest to, że plik każdego dnia ma inna nazwę. Dzisiaj jest 0071.roz jutro 0072.roz
– Dodane 31.07.2012 (Wt) 12:42 –
Może inaczej bo sam się w tym pogubiłem.
Na dysku C:\katalog\podkatalog każdego dnia zapisywany jest plik 0001.roz. Wykonuje to odpowiedni job który coś tam sprawdza i tworzy ten plik.
Mój cel jest taki aby każdego dnia sprawdzić czy dany plik powstał. Jeżeli tak - dobrze (nie trzeba nic robić). Jeżeli nie - źle (musi wyjść informacja w mailu, że trzeba zareagować).
Do sprawdzenia czy plik istnieje użyłem polecenia:
@echo off
REM Sprawdzanie czy plik istnieje
forfiles /p C:\katalog\podkatalog *.* /D +0 /c "cmd /c echo plik @file istnieje"
w wyniku czego otrzymuję
plik "0074.ROZ" istnieje
plik "0074.BOW" istnieje
Pytanie jak wykorzystać te informacje aby teraz sprawdzić, plik jest ok nic nierób, niema pliku odpal kolejny.bat (on wyśle maila z informacja).