CMD/BAT - Батник для запуска chkdsk по первым числам месяца
-
PowerZ
CMD/BAT - Батник для запуска chkdsk по первым числам месяца
Всех приветствую!
Нужен батник, который будет запускаться через GPO, и выполнять следующие операции только по 01 числам:
1. Определение даты
2. Если дата = 01, то выполняется команда “echo y|chkdsk %systemdrive% /f /x” и c последующей перезагрузкой компьютера.
3. Если дата не ровняется 01, то ничего не происходит.
помогите пожалуйста, с батником.
Нужен батник, который будет запускаться через GPO, и выполнять следующие операции только по 01 числам:
1. Определение даты
2. Если дата = 01, то выполняется команда “echo y|chkdsk %systemdrive% /f /x” и c последующей перезагрузкой компьютера.
3. Если дата не ровняется 01, то ничего не происходит.
помогите пожалуйста, с батником.
-
Georgio
Re: CMD/BAT - Батник для запуска chkdsk по первым числам месяца
Код:
Код: Выделить всё
@echo off
for /f "delims=./" %%i in ("%date%") do (
for /f "tokens=* delims=0 " %%j in ("%%i") do (
if %%j==1 (
echo y| chkdsk %systemdrive% /f /x
)
)
)
exit /b-
PowerZ
Re: CMD/BAT - Батник для запуска chkdsk по первым числам месяца
Вроде вопрос решен, но другим методом:
1. Отказался от запуска по первым числам (тут не так важно именно по первым числам, а главное один раз в месяц).
2. Нашел в сети альтернативный
Батник при запуске системы (выполняется удаление файла "chkdsk.log", по истечению 30 дней):
Код:
Батник при завершение работы системы (выполняется проверка существования файла "chkdsk.log", если нет, то выполняет chkdsk, и при следующем перезагрузке будет произведена проверка и исправление диска на ошибки).
Код:
1. Отказался от запуска по первым числам (тут не так важно именно по первым числам, а главное один раз в месяц).
2. Нашел в сети альтернативный
батник
для удаления файла по истечению срока, в данном случае замена "forfiles"Батник при запуске системы (выполняется удаление файла "chkdsk.log", по истечению 30 дней):
читать дальше »
Код:
Код: Выделить всё
@echo off
setlocal enabledelayedexpansion
set N=30
set MASK=chkdsk.log
set SOURCE=%SYSTEMDRIVE%
call :raschet %date% days_to_today
pushd %SOURCE%
for /f "tokens=*" %%a in ('dir /b /a:-d %MASK%') do (
set filedate=%%~ta
call :raschet !filedate:~0,10! days_to_date_of_file
set /a raznitsa=%days_to_today%-!days_to_date_of_file!
if !raznitsa! gtr %N% del /q "%%a"
)
popd
exit
:raschet
for /f "delims=. tokens=1-3" %%a in ('echo %~1') do (
set /a years=%%c*365+%%c/4
set /a prev_year=%%c-1
set /a result_year=%%c/4
set /a result_prev_year=!prev_year!/4
set /a vis=!result_year!-!result_prev_year!
if !vis!==1 (
if %%b==01 set /a years=!years!-1
if %%b==02 set /a years=!years!-1
)
if %%b==01 set months=0
if %%b==02 set months=31
if %%b==03 set months=59
if %%b==04 set months=90
if %%b==05 set months=120
if %%b==06 set months=151
if %%b==07 set months=181
if %%b==08 set months=212
if %%b==09 set months=243
if %%b==10 set months=273
if %%b==11 set months=304
if %%b==12 set months=334
set days=%%a
set firstsym=!days:~0,1!
if !firstsym!==0 set days=!days:~1,1!
set /a %~2=!years!+!months!+!days!
)Батник при завершение работы системы (выполняется проверка существования файла "chkdsk.log", если нет, то выполняет chkdsk, и при следующем перезагрузке будет произведена проверка и исправление диска на ошибки).
читать дальше »
Код:
Код: Выделить всё
@echo off
if not exist "%systemdrive%\chkdsk.log" (
echo y|chkdsk %systemdrive% /f /x > %systemdrive%\chkdsk.log
)
exit /b-
Iska
Re: CMD/BAT - Батник для запуска chkdsk по первым числам месяца
Georgio и Iska, спасибо! Отрабатывают оба батника.
Проверил через GPO в домене на клиенте Win 7.
Только в первом варианте убрал пробел между «y| chkdsk», и добавил shutdown.exe -r -t 10 как во втором варианте.
Цитата Iska:
Вообще-то для этого предназначено «chkntfs.exe /c …» (и «fsutil.exe dirty set …», если так уж хочется принудительной проверки): Chkdsk.
Вы считает, что не совсем правильно выполнять проверку диска chkdsk?
Тут только возник один неприятный момент: происходит циклическая перезагрузка-проверка.
А можно ли, как нибудь приделать, чтобы проверка выполнялась только один раз в сутки?
А то даже если отказаться от команды «shutdown.exe -r -t 10», то все равно будет каждый раз при перезагрузке, в течении дня отрабатываться команда на проверку.
Проверил через GPO в домене на клиенте Win 7.
Только в первом варианте убрал пробел между «y| chkdsk», и добавил shutdown.exe -r -t 10 как во втором варианте.
Цитата Iska:
Вообще-то для этого предназначено «chkntfs.exe /c …» (и «fsutil.exe dirty set …», если так уж хочется принудительной проверки): Chkdsk.
CMD/BAT - Батник для запуска chkdsk по первым числам месяца
Вы считает, что не совсем правильно выполнять проверку диска chkdsk?
Тут только возник один неприятный момент: происходит циклическая перезагрузка-проверка.
А можно ли, как нибудь приделать, чтобы проверка выполнялась только один раз в сутки?
А то даже если отказаться от команды «shutdown.exe -r -t 10», то все равно будет каждый раз при перезагрузке, в течении дня отрабатываться команда на проверку.
-
PowerZ
Re: CMD/BAT - Батник для запуска chkdsk по первым числам месяца
Цитата PowerZ:
Тут только возник один неприятный момент: происходит циклическая перезагрузка-проверка.
…
А то даже если отказаться от команды «shutdown.exe -r -t 10», то все равно будет каждый раз при перезагрузке, в течении дня отрабатываться команда на проверку.
Цитата PowerZ:
Вы считает, что не совсем правильно выполнять проверку диска chkdsk?
Вот поэтому я и привёл ссылку, чем можно заменить .
«Приделать»-то, конечно, всё можно, если вертеть в руках достаточно долго, но мне, в принципе, вовсе непонятен смысл Вашего желания назначать периодическую проверку системного раздела при загрузке системы в рамках групповой политики. Операционные системы на базе NT, как правило, вполне справляются сами с отслеживанием ситуаций, требующих проверки разделов на наличие ошибок (в отличие от старых ОС).
Тут только возник один неприятный момент: происходит циклическая перезагрузка-проверка.
…
А то даже если отказаться от команды «shutdown.exe -r -t 10», то все равно будет каждый раз при перезагрузке, в течении дня отрабатываться команда на проверку.
CMD/BAT - Батник для запуска chkdsk по первым числам месяца
Цитата PowerZ:
Вы считает, что не совсем правильно выполнять проверку диска chkdsk?
CMD/BAT - Батник для запуска chkdsk по первым числам месяца
Вот поэтому я и привёл ссылку, чем можно заменить .
«Приделать»-то, конечно, всё можно, если вертеть в руках достаточно долго, но мне, в принципе, вовсе непонятен смысл Вашего желания назначать периодическую проверку системного раздела при загрузке системы в рамках групповой политики. Операционные системы на базе NT, как правило, вполне справляются сами с отслеживанием ситуаций, требующих проверки разделов на наличие ошибок (в отличие от старых ОС).
-
Iska
Re: CMD/BAT - Батник для запуска chkdsk по первым числам месяца
Цитата Iska:
«Приделать»-то, конечно, всё можно, если вертеть в руках достаточно долго, но мне, в принципе, вовсе непонятен смысл Вашего желания назначать периодическую проверку системного раздела при загрузке системы в рамках групповой политики. Операционные системы на базе NT, как правило, вполне справляются сами с отслеживанием ситуаций, требующих проверки разделов на наличие ошибок (в отличие от старых ОС).
Суть решения назначить проверку диска принудительно через групповые политики 1-раз в месяц такова, что когда начинаешь выполнять именно принудительно такую проверку, то примерно у 5-10 машин в сети (из 200), есть ошибки. Хотя да, согласен, что NT должны сами автоматом исправлять ошибки.
Парк машин 50/50 = XP/7 (не считая серверную часть). Ошибки возникают как на XP, так и на 7. Особенно статистика показывает, что больше возникает ошибок на машинах, где весь день сёрфят в интернете.
Сейчас на данный момент задача запуска один раз в месяц, - решается с помощью корпоративного касперского, через задачи (запихнул туда батник). Почему смотрю в сторону запуска через GPO? Потому что антивирус не на всех машинах есть.
Попробую изучить альтернативу chkntfs.exe
«Приделать»-то, конечно, всё можно, если вертеть в руках достаточно долго, но мне, в принципе, вовсе непонятен смысл Вашего желания назначать периодическую проверку системного раздела при загрузке системы в рамках групповой политики. Операционные системы на базе NT, как правило, вполне справляются сами с отслеживанием ситуаций, требующих проверки разделов на наличие ошибок (в отличие от старых ОС).
CMD/BAT - Батник для запуска chkdsk по первым числам месяца
Суть решения назначить проверку диска принудительно через групповые политики 1-раз в месяц такова, что когда начинаешь выполнять именно принудительно такую проверку, то примерно у 5-10 машин в сети (из 200), есть ошибки. Хотя да, согласен, что NT должны сами автоматом исправлять ошибки.
Парк машин 50/50 = XP/7 (не считая серверную часть). Ошибки возникают как на XP, так и на 7. Особенно статистика показывает, что больше возникает ошибок на машинах, где весь день сёрфят в интернете.
Сейчас на данный момент задача запуска один раз в месяц, - решается с помощью корпоративного касперского, через задачи (запихнул туда батник). Почему смотрю в сторону запуска через GPO? Потому что антивирус не на всех машинах есть.
Попробую изучить альтернативу chkntfs.exe
-
PowerZ
Re: CMD/BAT - Батник для запуска chkdsk по первым числам месяца
Пока сделал так:
Код:
Со вторым батником не заработало.
Подскажите, как заменить forfiles удаление лога, на альтернативу, т.к. forfiles – нет в XP?
Код:
Код: Выделить всё
@echo off
forfiles /p %systemdrive% /m chkdsk.log /d -1 /c "cmd /c del /q /f @file"
if not exist "%systemdrive%\chkdsk.log" (
for /f "delims=./" %%i in ("%date%") do (
for /f "tokens=* delims=0 " %%j in ("%%i") do (
if %%j==1 (
echo y|chkdsk %systemdrive% /f /x > %systemdrive%\chkdsk.log
shutdown.exe -r -t 10
)
)
)
)
exit /bСо вторым батником не заработало.
Подскажите, как заменить forfiles удаление лога, на альтернативу, т.к. forfiles – нет в XP?
-
PowerZ
Re: CMD/BAT - Батник для запуска chkdsk по первым числам месяца
Цитата PowerZ:
т.к. forfiles – нет в XP?
Есть. Берите из комплектов Resource Kit'ов.
т.к. forfiles – нет в XP?
CMD/BAT - Батник для запуска chkdsk по первым числам месяца
Есть. Берите из комплектов Resource Kit'ов.
-
Iska
Re: CMD/BAT - Батник для запуска chkdsk по первым числам месяца
Взять forfiles конечно с Resource Kit'ов можно, но надо же распространить на все компы с XP в сети, тут уже другая заморочка. Хочется, чтобы из коробки было.
А если пойти другим путем, - как инвертировать батник, чтобы выполнялась команда "del файл" – всегда, кроме первого числа?
А если пойти другим путем, - как инвертировать батник, чтобы выполнялась команда "del файл" – всегда, кроме первого числа?
-
PowerZ
Re: CMD/BAT - Батник для запуска chkdsk по первым числам месяца
Цитата PowerZ:
но надо же распространить на все компы с XP в сети
я в логон скрипте копирую частоиспользуемые, но некоробочные и\или самописные утилиты с сервера в %temp% рабочей станции. Оттуда и вызываю.
Код:
Кстати..а что будет со станцией, которую, ну так вышло... никогда не включают 1-го числа?))
но надо же распространить на все компы с XP в сети
CMD/BAT - Батник для запуска chkdsk по первым числам месяца
я в логон скрипте копирую частоиспользуемые, но некоробочные и\или самописные утилиты с сервера в %temp% рабочей станции. Оттуда и вызываю.
Код:
Код: Выделить всё
if not exist %temp%\myutil.exe copy \\server\share\myutil.exe %temp%\Кстати..а что будет со станцией, которую, ну так вышло... никогда не включают 1-го числа?))