Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Файл должен открываться один раз в сутки через FC (http://forum.oszone.net/showthread.php?t=174768)

klenb 03-05-2010 17:36 1405838

Файл должен открываться один раз в сутки через FC
 
Здравствуйте!
Надо разработать командный файл, который бы запускал бы какой-либо файл один раз в сутки. То есть, если файл запускается первый раз в сутки, то он запускает какой-либо файл. Если файл уже запускали сегодня, то файл ничего не делает. Использовать для сравнения дат команду FC.

Например,

@ECHO OFF
date /t >datenow.txt
if exist datefile.txt (
fc datenow.txt datefile.txt >1.txt
if exist 1.txt (find "FC" 1.txt
goto bad)
)else goto good

:good
date /t >datefile.txt
start F:\d\eie.txt

:bad
exit


В общем недоработанная программа, не понимаю как сделать так чтобы он после сравнения файлов, сделал два условия:
1) если файлы одинаковые то, не открывать
2) если файлы разные то открывать

seriych 03-05-2010 18:46 1405870

klenb,
Код:

@ECHO OFF
set old="datefile.txt"
set now="datenow.txt"
set program="notepad"
set zapuskali=no
date /t >%now%
fc %now% %old%|find "FC"&&set zapuskali=yes
del /f /s /q %now%
if %zapuskali%==no (
date /t >%old%
start "" %program%)
exit

Вроде работает. Переменные old и now задают файлы даты предыдущего и текуго запуска батника. Наличие этих файлов до первого запуска батника не обязательно. Переменная program задает путь к запускаемой программе. В переменная zapuskali сохраняем результат поиска команды find в выводе команды fc. Если нашли в выводе слово FC, то это значит, что fc выдало "FC: различий не найдено", значит файл уже запускали сегодня. Если же не нашли, то записываем в %old% текущую дату и запускаем нужную программу.
P.S. Строка del /f /s /q %now% не обязательно- просто удаляет нужный только в момент сравнения файл %now%

klenb 04-05-2010 07:45 1406166

Действительно, так легче)
Спасибо


Время: 07:29.

Время: 07:29.
© OSzone.net 2001-