Утилита для проверки того, что сделает команда с вашими файлами, без её реального выполнения


Оглавление (нажмите, чтобы открыть):

SFC и DISM: Проверка и Восстановление системных файлов в Windows

Всякий раз, когда что-то идет не так с компьютером или ноутбуком, есть ряд инструментов для устранения неполадок, которые вы можете выполнить, чтобы попытаться устранить проблему. В Windows 10/8/7 есть несколько встроенных команд, которые можно использовать для проверки и восстановления поврежденных системных файлов, которые со временем вызывают проблемы при изменении. Одним из способов устранения неполадок, связанных с Windows, является проверка системы и восстановление системных файлов. Это может помочь во всех типах проблем, таких как медленная система, синий экран смерти, внезапные сбои питания и сбои системы.

Рассмотрим, как запустить средство проверки системных файлов в Windows с помощью командной строки CMD и PowerShell, таких команд как sfc /scannow и инструмента DISM. Хочу заметить, что для обновления Anniversary Update Windows 10, будет лучше использовать методы именно с PowerShell.

Проверка и Восстановление системных файлов через CMD

Средство проверки системных файлов сканирует ваш компьютер на предмет любого повреждения или изменений в системных файлах, которые в противном случае могли бы помешать нормальной работе вашего ПК. Оттуда он заменяет файл правильной версией, чтобы обеспечить бесперебойную работу. С помощью командной строки можно попытаться сканировать и восстановить системные файлы поздних операционных систем, как Windows 10/8/7 / Vista. Разберем две команды sfc /scannow и DISM с помощью CMD.

1. Использование инструмента System File Checker (SFC)

  • Запустите командную строку (CMD) от имени администратора. Нажмите «поиск» и напишите просто «cmd» или «командная строка», далее по ней правой кнопкой мыши и запуск от имени админа.
  • Задайте команду sfc /scannow и дождитесь окончания процесса.

Примечание: После сканирования вашей системы будет выдан один из трех результатов:

  • Ошибок системных файлов не будет.
  • Будут ошибки системных файлов и Windows восстановит их автоматически.
  • Windows обнаружила ошибки, но не может восстановить некоторые из них.

Если у вас показывает вариант 3, что ошибка обнаружена и система не может восстановить, то загрузитесь в безопасном режиме и проделайте заново процедуру. Советую отключить шифрование EFS и Bitlocker , если на момент проверки они имеются. Ничего не получилось? Двигаемся ниже.

2. Использование инструмента Deployment Image and Service Management (DISM)

Если вышеуказанное не работает в безопасном режиме, есть один последний способ проверить повреждение в системных файлах и исправить их. Используем инструмент Deployment Image and Service Management (DISM). Команда работает с системами Windows 8/8.1/10. Откройте обратно командную строку от имени администратора и используйте следующую команду:

DISM /ONLINE /CLEANUP-IMAGE /RESTOREHEALTH

Процесс может занять длительное время с зависанием процентной шкалы. Закончив работу, перезагрузите компьютер и запустите обратно sfc /scannow, чтобы убедиться, что ошибок нет или ошибка пропала.

Проверка и Восстановление системных файлов через PowerShell

Мы будем использовать Windows PowerShell, чтобы показать, как использовать службу обслуживания и управления DISM для сканирования и исправления поврежденных системных файлов в Windows 10. Этот способ будет более эффективный для обновления Anniversary windows 10, чем командная строка.

1. Использование инструмента System File Checker (SFC)

  • Запустите PowerShell от имени администратора. Нажмите «поиск» и наберите windows powershell, после нажмите правой кнопкой мыши и выберите от имени админа.
  • Задайте в окне PowerShell команду sfc /scannow. Если сканирование обнаружит какие-либо проблемы, Windows попытается их исправить. Если Windows не сможет их исправить, он предупредит вас, что необходимы дальнейшие исследования и действия. Двигайтесь ниже, если обнаружены ошибки.

2. Использование инструмента Deployment Image and Service Management (DISM)

Сканирование DISM обнаруживает поврежденные системные файлы и Windows попытается исправить их, и даст вам отчет о ходе работы в конце. Если Windows не сможет найти файлы, необходимые для восстановления поврежденных системных файлов, вам также будет предоставлена ​​информация о том, что делать дальше, со ссылкой на веб-сайт Microsoft и варианты устранения неполадок. Задайте ниже команду в окно PowerShell.

DISM /ONLINE /CLEANUP-IMAGE /RESTOREHEALTH

Если DISM все исправил или не выявил ошибки, то перезагрузите ноутбук, компьютер и запустите для проверки обратно sfc /scannow.

Как использовать SFC для восстановления системных файлов Windows 10

Если Windows 10 работает некорректно, вы можете использовать утилиту командной строки SFC для восстановления поврежденных или потерянных системных файлов.

Когда вы начинаете замечать случайные ошибки, проблемы во время загрузки системы или проблемы работоспособности компонентов Windows, то велика вероятность, что данное состояние вызвано поврежденными или потерянными системными файлами.

Несмотря на то, что Windows 10 отлично справляется с защитой файлов, которые необходимы для нормальной работы компьютера, некоторые приложения, драйвера или даже обновления Windows могут стать причиной потери стабильности системы. Как и прошлых версиях систем от Microsoft, Windows 10 включает средство проверки системных файлов (System File Checker, SFC) – компактную, но мощную утилиту командной строки, которая может выполнить сканирование цельности системы и заменять поврежденные или пропущенные файлы оригинальной версией.

В данном руководстве мы представим шаги по использованию средства проверки системных файлов (SFC) для автоматического восстановления поврежденных файлов системы во время работы операционной системы. Также рассмотрим, как запустить утилиту в Безопасном режиме командной строки и как вручную восстановить поврежденные системные файлы, которые стали причиной неполадок.

Предупреждение: перед началом работы с утилитой SFC рекомендуется сделать полную резервную копию системы или создать точку восстановления системы. В случае, если что-то пойдет не так, вы сможете вернуть исходное состояние системы.

Как проверить и восстановить системные файлы в Windows 10

Следующая команда позволяет выполнить полное сканирование защищаемых файлов на вашем компьютере и исправить файлы, которые вызывают проблемы во время работы Windows 10.

1. Введите в поиске меню Пуск Командная строка, нажмите правой кнопкой мыши по появившейся ссылке и выберите Запустить от имени администратора, потому что для запуска SFC требуются права администратора устройства.

2. В Командной строке введите следующую команду и нажмите Enter:

3. После завершения сканирования, вы увидите одно из следующих сообщений:

  • Защита ресурсов Windows не обнаружила нарушений целостности. Это означает, что в системе не обнаружены поврежденные или потерянные файлы.
  • Защита ресурсов Windows не может выполнить запрошенную операцию. Это сообщение означает, что во время сканирования произошла ошибка и нужно выполнить сканирование оффлайн.
  • Защита ресурсов Windows обнаружила поврежденные файлы и успешно их восстановила. Сведения см. в журнале CBS.Log WinDir%\Logs\CBS\CBS.log. Данное сообщение появляется, когда SFC смогла исправить проблему. Вы можете посмотреть журнал для того, чтобы ознакомиться с подробной информацией.
  • Защита ресурсов Windows обнаружила поврежденные файлы, но не может восстановить некоторые из них. Сведения см. в журнале CBS.Log %WinDir%\Logs\CBS\CBS.log. В этом случае нужно вручную исправить поврежденные файлы.

Совет: для исправления всех проблем может понадобиться пройти процедуру проверки целостности около трех раз.

Как посмотреть подробную информацию о сканировании SFC

Для просмотра информации о работе средства проверки целостности в файле CBS.Log нужно создать копию файла на рабочем столе, доступную для чтения:

1. Введите в поиске меню Пуск Командная строка, нажмите правой кнопкой мыши по появившейся ссылке и выберите Запустить от имени администратора.

2. Введите следующую команду и нажмите Enter

3. Откройте файл sfclogs.txt, расположенный на рабочем столе, с помощью приложения “Блокнот”. Файл будет содержать подробную информацию о сканировании системы и о файлах, которые не удалось восстановить.

Примечание: подробная информация доступна только при выполнении сканирования в Windows 10, но не при запуске утилиты в Безопасном режиме в Командной строке.

Как просканировать и восстановить системные файлы в Windows 10 оффлайн

Иногда защищенные системные файлы, которые нужно восстановить, уже загружены в оперативную память во время работы WIndows 10. В этом случае для исправления обнаруженных проблем можно использовать средство проверки системных файлов во время запуска системы.

  • 1. Используйте клавиатурное сочетание Windows + I для открытия приложения “Параметры”.
  • 2. Выберите раздел “Обновление и безопасность”.
  • 3. В меню Выберите опцию “Восстановление”.
  • 4. В секции “Особые варианты загрузки” нажмите кнопку “Перезагрузить сейчас”.
  • 5. Выберите “Поиск и устранение неисправностей”.
  • 6. Перейдите в “Дополнительные параметры”.
  • 7. Нажмите “Командная строка” для загрузки компьютера в режиме командной строки.

Файл является программой, загруженной из интернета. Вы действительной хотите открыть ее? Как исправить

Одной из мер безопасности в macOS является диалоговое окно, которое появляется при первом запуске только что скачанного из интернета приложения: “Файл является программой, загруженной из интернета. Вы действительной хотите открыть ее?”

Данное предупреждение возможно удержит среднего пользователя от запуска случайно скачанного из интернета приложения с вредоносным кодом. Но более опытному пользователю возможно захочется избавиться от такого предупреждения раз и на всегда при условии, что он соблюдает все правила безопасности в отношении приложений, которые он скачивает из интернета и запускает на своём устройстве. Для данного случая существуют различные варианты решений и в данном руководстве мы покажем вам все за и против каждого из них.

Вариант 1: Запуск приложения кликом правой кнопкой мышки

Данный вариант является самым простым и безопасным способом избежать появление диалогового окна службы «Gatekeeper». Время он не экономит и избежать появление предупредительного окна полностью не удастся, но этот вариант позволит вам быстро запустить приложение, при котором не придётся отключать службу безопасности.

Для открытия заблокированного службой «Gatekeeper» файла без её отключения в «Системных настройках», просто кликните по этому файлу правой кнопкой мышки (или примените комбинацию клавиш «ctrl-click», если вам так больше нравится), и в появившемся меню выберите команду «Открыть». Затем появится окно с просьбой подтвердить данное действие. Выберите «Открыть» ещё раз и ваше приложение запустится.

В дальнейшем это приложение будет запускаться без подтверждения, так как его запуск уже одобрен в системе безопасности. Данное вариант запуска применяется лишь один раз – при первом запуске и применим в обоих случаях, появления следующих диалоговых окон: «Файл является программой, загруженной из интернета. Вы действительной хотите открыть ее?» и «Программа не может быть открыта, так как ее автор является неустановленным разработчиком». Служба безопасности Gatekeeper остаётся включённой всё время.

Вариант 2: Разрешить запуск в «Системные настройки»

Данный вариант действий идентичен предыдущему варианту, но занимает больше действий и времени, поэтому он менее предпочтителен. Просто следует учесть, что он имеется. Итак, дважды нажимаем на приложение. После появления предупредительного окна нажимаем «Отменить» и запускаем «Системные настройки», где выбираем панель «Защита и безопасность», в закладке «Основные» вы увидите заблокированное приложение. Для их запуска выберите команду «Разрешать отовсюду». Как и в предыдущем случае, данное действие придётся выполнять лишь один раз, при первом запуске приложения под вопросом.

Вариант 3: Выключение системы безопасности «Gatekeeper» полностью

Данный вариант позволит избежать лицезреть предупредительные диалоговые окна на своём экране, но имеет один существенный по вполне понятным причинам недостаток: отсутствие всякой защиты со стороны службы безопасности. По этой причине, я не рекомендую использовать данный метод, за исключением тех случаев, когда вы действительно понимаете что вы делаете и знаете другие способы проверки происхождения и целостности скаченного файла.

Для перевода службы безопасности Gatekeeper в полностью беспомощное положение, выполните следующие действия:

1) Запустите приложение «Terminal», которое можно найти в /Applications/Utilities, или запустить через службу поиска «Spotlight».

2) В терминальном окне наберите и выполните следующую команду:

3) Нажмите клавишу «Enter» для её выполнения и затем, запустите приложение «Системные настройки».

4) Выберите панель «Защита и безопасность» и затем закладку «Основные». Там вы увидите, что появился третий вариант действий, который отсутствовал ранее: «Разрешить использование программ, загруженных из: Любого источника».

Как видно, теперь ваша система находится в режиме «Разрешить использование программ, загруженных из: Любого источника», и означает, что система безопасности «Gatekeeper» полностью выключена. Операционная система больше не будет беспокоить вас предупредительными сообщениями при запуске приложений, скаченных из неизвестных источников. Данный метод позволяет экономить время при запуске неизвестных приложений и также является наименее безопасным существующим способом. Осторожно при использовании.

Для включения системы безопасности «Gatekeeper», просто выберите одну из предлагаемых опций, в виде переключателей. После закрытия Системных Настроек, опция «Любой источник» опять исчезнет и для её вторичной активации потребуется повторить действия, описанные в пункте 2.

Вариант 4: Выключение режима карантина/изоляции

Данный вариант имеет тот же результат как и Вариант 3, но работает несколько иначе. Я Не Рекомендую к использованию данного метода по той причине, что он нигде не задокументирован, в отличии от Варианта 3, который приводит к такому же результату. В данную публикацию этот метод включён лишь в целях просвещения.

Весь смысл данного метода заключается в выключении режима карантина для скаченных с помощью таких приложений как браузеры, почтовые приложения и даже службы «AirDrop» файлов, которым обычно присваивается атрибут карантина. Именно наличие данного атрибута приводит в действие службу безопасности «Gatekeeper». Служба безопасности «Gatekeeper» не проводит проверку файла без атрибута «карантин». То есть, вся работа службы безопасности «Gatekeeper» базируется на присутствии или отсутствии флажка «карантин».

При использовании Варианта 3, служба безопасности «Gatekeeper» деактивируется полностью и проверки файлов не выполняются даже не смотря на присутствие в них атрибута карантин. При использовании данного метода (Вариант 4) деактивируется механизм присваивания файлу атрибута карантин и система безопасности «Gatekeeper» считает что нет необходимости в выполнении проверки данного файла на предмет безопасности. Сама система безопасности при этом остаётся в активном, рабочем состоянии.

Оба метода приводят к одинаковым результатам, хотя при этом используются различные механизмы. Как я уже упоминал выше, при данном методе приходится использовать не совсем обычную процедуру и не является идеальным в использовании.

Для выключения режима карантина для скаченных файлов, необходимо выполнить следующее:

1) Запустите приложение «Terminal», которое можно найти в /Applications/Utilities, или запустить через службу поиска «Spotlight».

2) В терминальном окне наберите и выполните следующую команду:

3) Нажмите клавишу «Enter» для её выполнения.

4) Для проверки настроек, наберите и выполните следующую команду:

При правильных настройках, результатом будет командная строчка: LSQuarantine = 0.

5) Перезапустите компьютер для выступления изменений в силу.

6) После перезапуска компьютера, попробуйте запустить любое скаченное из Интернета приложение.

Если вы решите включить режим карантина обратно (что на самом деле, вам действительно необходимо сделать), то выполните следующие действия:

1) Запустите приложение «Terminal».

2) В окне терминала, наберите одну из следующих команд:

Первая команда переключает первоначально изменённый параметр на значение «true» и возвращает к жизни предупредительные сообщения. Вторая команда полностью удаляет первоначально изменённые параметры и также приводит к появлению предупредительных окон. Конечный результат обеих команд будет одним и тем же, можно использовать любую из предложенных опций.

3) Для проверки правильности настроек, необходимо опять ввести команду на запрос o состоянии:

Если вы использовали настройку « -bool true» в Пункте 2, то результатом запроса будет строчка:

LSQuarantine = 1 – означая активацию предупредительных сообщений.

Если вы предпочли удалить настройки с помощью второй команды, то результатом запроса будет следующая строка:

Которая означает, что параметр был полностью удалён и система возвращается к штатной процедуре проведения проверок с показом предупредительных сообщений.

4) Перезапустите компьютер

Для удаления флажка карантина для одного отдельного файла, необходимо выполнить приведённую ниже терминальную команду. Это может быть полезным, так как вы не меняете настройки присвоения режима карантина для скаченных файлов, а также не меняете режимы работы системы безопасности «Gatekeeper», но для отдельного файла делаете исключение из общего алгоритма действий и выключаете предупредительные сообщения именно для выбранного файла. Например, у вас есть приложение, скаченное полученное от проверенного источника, и которое необходимо установить на множестве компьютерах. Для отключения предупредительных сообщений на каждом компьютере, необходимо выключить атрибут «карантин» для этого приложения, выполнив следующее действие в приложении «Terminal»:

Замените /path-to-quarantined-file на местонахождения вашего файла или просто перетяните необходимый файл на терминальное окно в соответствующую часть командной строки. Теперь данное приложение спокойно будет избегать все «ловушки» системы «Gatekeeper» и будет иметь статус «проверенного файла».

Вот таким образом решаются эти проблемы. Используя мощь командной строки преодолеваем маленькие неудобства, создаваемые присутствием системы безопасности.

Оцените статью 5,00 / 5 (Всего 1)

Не пропускайте новости Apple – подписывайтесь на наш Telegram-канал, а также на YouTube-канал.

Ошибка ” Этому файлу не сопоставлена программа…”

Исправляем ошибку типа ” Этому файлу не сопоставлена программа…”

Всем привет, на страничках блога продолжаем рассматривать неисправности Windows и сегодня попробуем “профиксить” странную ошибку системы, когда при запуске игр или других программ или утилит от сторонних разработчиков появляется окно с ошибкой вот такого содержания:

Этому файлу не сопоставлена программа для выполнения этого действия. Установите программу, или, если она уже установлена, создайте сопоставление с помощью компонента панели управления “Программы по умолчанию”

Нередко это проявляется:

  • в невозможности попасть ни в одну директорию Windows. При этом проводник Windows Explorer не может отобразить корректно пути к папкам и файлам
  • Рабочий стол отображает пустые значки ярлыков
  • кликать по ярлыкам становится пустым занятием – значки не реагируют ни на что
  • вероятно, оказалась побита панель задач: пропали ярлыки быстрого доступа, значок Звука не реагирует на мышь (для пользователей Windows 10 есть отдельное решение)
  • контекстное меню Рабочего стола отказывается запускать Персонализацию и Параметры экрана
  • и т.д. и т.п.

Возможные причины : непреднамеренное удаление только что установленной программой сторонних разработчиков некоторых параметров реестра Windows. И, прежде чем начать, убедитесь в том, что файловая система цела. В консоли от имени администратора cmd наберите команду

Результатов придётся подождать, но оно того всегда стоит. Более того, конфликт системы и программы иногда сопровождается тем, что Windows без спроса откатывается назад, забирая с собой загруженные и применённые обновления. Запустите Центр обновлений и проверьте наличие установленных. Приступать к следующим действиям есть смысл, если оба эти совета проверены:

Существует несколько вариантов решения проблемы, в том числе и для папок, которые при попытке их открыть двойным щелчком выдают ту же ошибку. О каждом варианте – по порядку, и к концу статьи, думаю, мы с вами ошибку победим: читайте внимательно и попробуйте всё. После применяемых изменений перезагружайтесь.

Вариант первый: проверим реестр

Проблема видится в повреждении сразу нескольких веток реестра операционной системы, связанных либо с ассоциацией файлов, либо в повреждении проводника системы. Для начала попробуйте отремонтировать параметр IsShortcut в ветке реестра (запускаем редактор regedit.exe или воспользуйтесь утилитой regjump для быстрого перехода в нужную ветку прямо из консоли cmd)

Скорее всего у вас нет выделенного мной в правой части окна параметра. Вам его нужно просто создать заново. Для этого щёлкните правой мышкой, выберите Создать…Строковый параметр и назвать его именем IsShortcut. Закрываем редактор, пробуем, отписываемся.

Вариант два: ремонтируем проводник Windows

Если вы обнаруживаете, что указанный параметр на месте, или ничего так и не заработало, предлагаю более жёсткий вариант. Ремонтируем Windows Explorer, и мы не будем чинить каждый из кустов реестра отдельно, а попробуем откорректировать все нужные нам ветки скопом. Для этого скачайте крохотный архив для восстановления Windows Explorer. Распакуйте и запустите находящийся в нём ключ редактора реестра, согласитесь с изменениями в реестре и перезагрузитесь.

Вариант три: восстановление папок и ярлыков

Пользователи, которые также пострадали от ошибки “этому файлу не сопоставлена программа” поделились утилитой, которая помогла по их заверениям не раз. Я немного отредактировал её под “российские нужды”. Лично воспользоваться не удалось, но вирусов в ней нет и хуже точно не становится. Вот она:

Внутри находится небольшой исполнительный файл, который поможет восстановить настройки папок и ярлыков. Это должно вам помочь в борьбе с ошибкой “Этому файлу не сопоставлена программа…”

Вариант четыре: не открывается какой-то конкретный тип файлов

Этот вариант неисправности может и не сопровождаться предупреждением типа “этому файлу не сопоставлена программа…” Для неё характерен факт, что вдруг перестали открываться конкретные виды программ: музыка, видео, текстовые документы, страницы браузера. Решение для этой проблемы также существует и вы можете попробовать найти расширение для “неоткрывающегося” файла на этой странице (для Windows 7 точно прокатывает):

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

Как видите, нижняя строчка таблицы может даже восстановить неоткрывающиеся директории, диски и папки Windows.

Закачается архив, в котором упакован файл reg редактора реестра. Вам остаётся запустить его, согласиться с изменениями и проверить работоспособность. Правда, некоторые пользователи жалуются на то, что не открывается именно: а) сам редактор реестра и б) архиватор… Придётся вам воспользоваться загрузочным диском и работать оттуда. К сожалению, это потребует от вас усидчивости и более серьёзных знаний в работе Windows. Но ничего сложно нет. У кого будет такая проблема, отписывайтесь со страницы обратной связи.

Вариант пять: проводнику Windows что-то мешает…
Этот вариант оказался здесь, потому что именно папки порой отказываются отзываться на двойной щелчок мыши. При этом повторяя сообщение об ошибке. Если твики реестра из ссылок абзацами выше не помогают, есть предположение, что системному проводнику противодействует некая программа. Давайте проверим. Вернёмся в реестр в раздел

и удалим папки cmd и find :

Пробуем без перезагрузки открыть неработающие до того папки. Должно сработать. Такого же эффекта пользователь может добиться, используя самый популярный чистильщик Windows – CCleaner. Так…

Сервис – Автозагрузка – Контекстное меню

указанных file и cmd быть в списке не должно. Если обнаружите, выключите:

для просмотра откройте картинку в новой вкладке

14 бесплатных программ для тестирования жесткого диска

Для проверки жестких дисков существует множество бесплатных инструментов, которые могут оказать помощь в определении того, что происходит с жестким диском, когда есть подозрение, что с ним какая-то проблема.

В операционную систему типа Windows уже включены такие средства, как проверка диска на наличие ошибок и команда chkdsk, но есть и другие инструменты, представленные ниже, которые можно бесплатно получить у производителей жестких дисков и других разработчиков.

Важно: в зависимости от найденной проблемы, может потребоваться заменить жесткий диск, если он не проходит какой-либо проверки одного из приведенных тестов для жесткого диска. Для этого нужно следовать приведенным в программе советам.

Seagate SeaTools

Программа Seagate SeaTools представляет собой бесплатную программу для тестирования жестких дисков, доступную для пользователей в одном из двух вариантов:

  • SeaTools для DOS поддерживает диски Seagate или Maxtor и работает вне зависимости от вашей операционной системы, запускаясь непосредственно с CD или USB-диска, что делает эту программу весьма надежной.
  • SeaTools для Windows — это программа, которую нужно установить в операционной системе Windows. С ее помощью можно выполнять базовое и расширенное тестирование любых дисков от любых производителей — как внутренних, так и внешних.

Тем пользователям, которые обращаются к программам SeaTools Desktop, SeaTools Online, или PowerMax от Maxtor, следует принять во внимание, что названная выше программа заменяет все три указанные программы. Сегодня компания Seagate является владельцем торговой марки Maxtor.

Программы SeaTools от компании Seagate являются наилучшими в своем сегменте. Их используют для проверки жестких дисков в профессиональных компьютерных сервисах, но при этом и любой пользователь легко может воспользоваться ими.

Версия SeaTools для Windows работает на операционных системах от Windows 10 до Windows XP.

HDDScan

Программа HDDScan является бесплатной программой для проверки всех типов дисков, независимо от их производителя.

В HDDScan входят несколько инструментов, включая тестирование SMART и проверку поверхности.

Программа очень проста в использовании, не требует установки, поддерживает интерфейсы почти всех дисков, и, похоже, регулярно обновляется.

HDDScan можно использовать в Windows 10, 8, 7, Vista и XP, а также на Windows Server 2003.

DiskCheckup

DiskCheckup — это бесплатное средство проверки жесткого диска, которое работает с большинством дисков.

Программа выводит такую информацию SMART, как число ошибок чтения, время раскрутки пакета пластин из состояния покоя до рабочей скорости, частота ошибок при позиционировании блока магнитных головок и температура. Кроме того, она может выполнить быструю и расширенную проверку диска.

Можно настроить программу так, чтобы информация секции SMART пересылалась по электронной почте или выводилась на дисплей, когда параметры диска превысят пороговые значения, рекомендуемые изготовителем.

Жесткие диски, имеющие соединение SCSI, или реализующие аппаратный механизм RAID, программой DiskCheckup не поддерживаются.

Программа DiskCheckup работает на операционных системах Windows 10/8/7/Vista/XP и Windows Server 2008/2003.

GSmartControl

Программа GSmartControl может выполнять различные проверки жесткого диска, выводя подробные результаты и давая общую оценку состояния диска.

С ее помощью можно просмотреть и сохранить значения таких атрибутов SMART, как количество полных циклов включения-выключения диска, общее количество ошибок записи, количество повторов рекалибровки и многое другое.

Для поиска неисправностей диска программа GSmartControl может выполнить три самопроверки:

  • Быстрая проверка: занимает около 2 минут и используется для выявления серьезно поврежденного жесткого диска.
  • Расширенная проверка: Требует около 70 минут и проверят всю поверхность жесткого диска для обнаружения сбоев.
  • Проверка транспортировки: Эта проверка занимает 5 минут и предназначена для поиска повреждений, которые могли произойти во время транспортировки диска.

Программа GSmartControl может быть загружена для Windows как в варианте без установки (portable), так и в качестве устанавливаемой программы. Она работает на версиях системы от Windows 10 до Windows XP. Также можно получить вариант программы для операционных систем Linux и Mac и программы в формате LiveCD/LiveUSB.


Windows Drive Fitness Test (WinDFT)

Windows Drive Fitness Test — это бесплатное программное обеспечение для диагностики жестких дисков, способное работать на большинстве доступных сегодня дисков.

Приведенная ниже ссылка на загрузку производит установку программы Windows Drive Fitness Test в операционной системе Windows. Но ее нельзя использовать для проверки диска, на котором установлена сама Windows.

К сожалению, при помощи Windows Drive Fitness Test можно проверять только диски USB и другие внутренние диски.

Программа WinDFT может быть установлена на операционных системах Windows 10, 8, 7, Vista, и XP.

Samsung HUTIL

Программа Samsung HUTIL является бесплатной утилитой для диагностики жестких дисков Samsung. Иногда HUTIL называется ES-Tool.

Программа Samsung HUTIL доступна в виде ISO-образа для последующей записи на CD или USB-флешку. Такой подход делает HUTIL независимой от операционной системы и, в общем, более удобным средством для тестирования, чем программы, разработанные под операционную систему Windows. Также можно запускать HUTIL с загрузочной дискеты.

Замечание: программа HUTIL проверят только жесткие диски Samsung. Она будет загружаться, и находить диски, выпущенные не в Samsung, но на таких дисках нельзя провести никакой диагностики.

Поскольку программа Samsung HUTIL работает с загрузочного диска, то для ее работы потребуется наличие функционирующего жесткого диска и операционной системы, чтобы записать ее на CD или USB-флешку.

Western Digital Data Lifeguard Diagnostic (DLGDIAG)

Бесплатная программа Western Digital Data Lifeguard Diagnostic (DLGDIAG) разработана для проверки только жестких дисков с торговой маркой Western Digital.

Программа Western Digital Data Lifeguard Diagnostic может быть скачена в виде портативной версии для Windows, так и в виде ISO-файла с образом для записи на загрузочный диск, и выполняет ряд проверок жесткого диска. Подробные инструкции по установке от Western Digital можно найти по ссылке, приведенной ниже.

Замечание: версия DLGDIAG для DOS осуществляет диагностику только дисков Western Digital, в то время как версия этой программы для Windows работает и с дисками других производителей.

Версия программы для Windows работает на операционных системах с Windows 10 по Windows XP

Bart’s Stuff Test

Программа Bart’s Stuff Test — это бесплатная программа для Windows, выполняющая нагрузочные тесты жестких дисков.

Программа не предоставляет такого количества возможностей, и не проводит настолько доскональные тестирования жесткого диска, как другие программы в настоящем списке.

С учетом всех соображений, Bart’s Stuff Test представляет собой хорошее дополнение к вашему арсеналу по проверке дисков, особенно, если вы испытываете сложности с проверкой при помощи средств, основанных на ISO-образах, и хотите воспользоваться чем-то еще, помимо предоставляемых по умолчанию средств Windows.

Bart’s Stuff Test, как заявлено, работает только на операционных системах с Windows XP по Windows 95. Однако мы проверили ее работоспособность и на самых последних версиях системы (Windows 10 и Windows 8) и не обнаружили каких-либо проблем.

Fujitsu Diagnostic Tool

Fujitsu Diagnostic Tool представляет собой бесплатное средство диагностики жестких дисков, разработанное специально для жестких дисков Fujitsu.

Программа Fujitsu Diagnostic Tool (FJDT) доступна в варианте для Windows и в варианте для DOS с использованием загрузочной дискеты. К сожалению, DOS-вариант ориентирован на использование флоппи-дисков — образы, которые будут запускаться с CD или USB, недоступны.

Fujitsu Diagnostic Tool предоставляет две проверки: «быстрый тест» (продолжительностью около 3 минут) и «все сторонний тест», время выполнения которого будет зависеть от размеров жесткого диска).

Замечание: Fujitsu Diagnostic Tool выполняет проверку жестких дисков только для дисков, выпущенных Fujitsu. Если у вас диск от другого производителя, то нужно попытаться использовать программы не зависящие от производителя, приведенные в начале списка.

Версия для Windows программы Fujitsu Diagnostic Tool должна работать на всех операционных системах, от Windows 10 до Windows 2000.

HD Tune

Программа HD Tune выполняет проверки жестких дисков, работая под управлением Windows. Она может работать с любыми внутренними или внешними дисками, дисками SSD или картами памяти.

При помощи HD Tune можно выполнить тест производительности, проверить состояние диска при помощи режима Self-Monitoring Analysis (анализ мониторинга) и технологии ведения отчетов о работе диска (SMART). Кроме того программа может провести сканирование диска на наличие ошибок.

Поддерживается работа в системах Windows 7, Vista, XP, и 2000, хотя корректная работа HD Tune была проверена и на Windows 10 и Windows 8.

Free EASIS Drive Check

Программа Free EASIS Drive Check, предназначенная для проверки жестких дисков, имеет две встроенные утилиты проверки — проверка секторов и чтение значений атрибутов SMART.

Проверка атрибутов SMART позволяет составить список, содержавший более 40 параметров, описывающих работу жесткого диска, а проверка секторов проверят поверхность носителя на наличие ошибок чтения.

Отчет о выполнения любого из этих тестов можно увидеть непосредственно в программе после ее завершения. Кроме того можно сконфигурировать программу так, чтобы отчет отправлялся на электронную почту или выводился на печать.

Согласно описанию, EASIS Drive Check работает на операционных системах от Windows 2000 до Windows 7, но была проверена ее работоспособность и на Windows 8 и 10.

Встроенная в Windows проверка ошибок

Программа проверки ошибок иногда называется программой scandisk. Это средство проверки жесткого диска, входящее в состав операционной системы Windows, и позволяющее осуществит поиск разнообразных ошибок на жестком диске.

Это средство также может пытаться устранить ряд проблем, связанных с жестким диском.

Macrorit Disk Scanner

Macrorit Disk Scanner — это очень простая программа, проверяющая наличие сбойных секторов на жестком диске. Ее легко использовать, она быстро устанавливается, а также доступна в portable-версии.

Основная часть ее окна используется для визуального представления процесса сканирования и четко указывает на местоположение повреждений.

Особенно хорошо реализовано в Macrorit Disk Scanner визуальное отображение того, сколько времени осталось до конца проверки, т.к. некоторые программы проверки жестких дисков не показывают этого. Кроме того, можно выбрать опцию автоматического выключения компьютера по завершению проверки.

Операционными системами, в которых может работать Macrorit Disk Scanner, являются: Windows 10, 8, 7, Vista, XP, Windows Home Server, и Windows Server 2012/2008/2003.

Ariolic Disk Scanner

Программа Ariolic Disk Scanner очень похожа на Macrorit Disk Scanner в том, что для поиска сбойных секторов диска используется только чтение. Эта программа имеет минимальный интерфейс с единственной кнопкой, и, используя ее, легко понять, какие части диска содержат «битые» сектора.

Программа имеет только портативную версию, а ее размер немногим превышает 1 Мб.

Единственное, что отличает эту программу от Macrorit Disk Scanner, это то, что Ariolic Disk Scanner показывает файлы, в которых обнаружены ошибки чтения.

Мы проверяли работу Ariolic Disk Scanner только на Windows 10 и XP, но она также должна работать и с другими версиями Windows.

Командные файлы Windows

Общие сведения о командном процессоре Windows.

Командные файлы (пакетные файлы, скрипты, сценарии, ”батники”) — это обычные текстовые файлы с расширением .bat или .cmd , строки которых представляют собой специальные команды командного процессора (интерпретатора команд ) и/или имена исполняемых файлов с параметрами. Командный процессор – это специальная программа, являющаяся обязательным элементом практически любой операционной системы, главным назначением которой, является предоставление пользователю возможности выполнения определенных программ без их компиляции и создания исполняемых файлов. Для операционных систем DOS и Windows9X в качестве интерпретатора команд использовался командный процессор command.com , для всех остальных ОС семейства Windows ( NT/2k/XP/Vista/7/8/10 и старше) — cmd.exe .

Мастер Йода рекомендует:  Шесть простых рекомендаций по улучшению видимости сайта в результатах поиска Google

Несмотря на непрерывное совершенствование средств создания и выполнения сценариев с использованием объектно-ориентированных языков, обычная командная строка и простые командные файлы, по-прежнему остаются основным инструментом для выполнения рутинных действий, диагностики сетевых проблем, автоматизации процессов резервного копирования и т.п. При всех недостатках реализации командного процессора в Windows, достойной альтернативы ему нет, и очевидно в ближайшем будущем, не будет.

Как уже упоминалось выше, командный файл – это обычный текстовый файл с набором команд, которые последовательно выполняются командным процессором CMD Windows. Строки командных файлов могут содержать специфические команды самого процессора команд (FOR, ECHO, REM и т.п.) или имена исполняемых модулей (net.exe, regedit.exe, sc.exe) Командный процессор может быть запущен в интерактивном режиме через Пуск — Выполнить — CMD.EXE . В данном режиме, вы увидите окно CMD.EXE ( консоли ) с приглашением к вводу команд. Возможный список большинства консольных команд можно получить введя команду:

HELP
Справочную информацию по конкретной команде можно получить, указав ее название в качестве параметра команды HELP:

HELP Имя команды

Если вы работаете в русифицированной версии Windows, то учтите, что в среде командного процессора символы национального алфавита используются в DOS-кодировке. Для переключения между кодовыми страницами Windows и DOS используется команда

CHCP номер страницы
CHCP 866 — использовать кодовую страницу 866 (DOS)
CHCP 1251 — использовать кодовую страницу 1251 (WINDOWS)

Для просмотра и редактирования командных файлов, содержащих символы русского алфавита нужно использовать редактор с поддержкой DOS-кодировки. Если вы используете стандартное приложение «Блокнот» (notepad.exe), то для правильного отображения символов русского алфавита нужно выбрать шрифт Terminal , с помощью меню Правка — Шрифт.

Внешний вид окна CMD.EXE (консоли Windows) можно изменить с помощью команды

В качестве аргументов для команды используются 2 шестнадцатеричные цифры, задающие цвет фона и цвет символа.

COLOR F0 — символы белого цвета на черном фоне (используется по умолчанию).

COLOR F0 — черные символы на белом фоне.

COLOR 0E — светло-желтые символы на черном фоне.

HELP COLOR — подсказка для команды COLOR.

Работа с командным процессором предполагает использование двух стандартных устройств — устройства ввода (клавиатуры) и устройства вывода (дисплей). Однако, имеется возможность изменить стандартно используемые устройства ввода-вывода с помощью специальных символов — символов перенаправления

> — перенаправление вывода
— перенаправление ввода

Для вывода справки не на экран а, например, в файл с именем help.txt, можно использовать следующую команду:

HELP > help.txt
При выполнении данной команды, в текущем каталоге будет создан файл с именем help.txt , содержимым которого будет результат вывода команды HELP. Если файл help.txt существовал на момент выполнения команды, его содержимое будет перезаписано. Для того, чтобы дописать данные в конец существующего файла, используют удвоение символа перенаправления вывода — «>>»

HELP GOTO > myhelp.txt — в файл myhelp.txt будет выдана справка по использованию команду GOTO
HELP COLOR &gt&gt myhelp.txt — в конец файла myhelp.txt будет дописана справка по использованию команды COLOR

Простейший пример перенаправления ввода:

cmd.exe — командный процессор не будет ожидать ввода команд с клавиатуры, а считает их из файла commands.txt . Фактически, указанный текстовый файл в данном случае является командным файлом.

При запуске командного процессора можно указать конкретную команду в качестве аргумента командной строки:

cmd.exe /C HELP FOR — выполнить команду HELP FOR и завершиться (параметр командной строки или ключ /C )

cmd.exe /K HELP FOR — выполнить команду HELP FOR и перейти в режим ожидания дальнейшего ввода команд (ключ /K )

Подробную справку по использованию cmd.exe можно получить, введя в качестве аргумента ключ /?

Кроме символов перенаправления ввода-вывода в командной строке могут использоваться символы объединения команд — & (амперсанд) и | (вертикальная черта)

& — одиночный амперсанд используется для разделения нескольких команд в одной командной строке.

команда1 & команда2 — выполняется первая команда, затем вторая команда.

&& — условное выполнение второй команды. Она будет выполнена, если код завершения (или код возврата) первой команды равен нулю, т.е. команда выполнена успешно. Успешность выполнения команды определяется значением специальной переменной среды ERRORLEVEL.

команда1 && команда2 — выполняется команда1 , а команда2 выполняется, только если первая была выполнена успешно.

|| — условное выполнение второй команды. Если первая команда завершилась с кодом возврата не равным нулю (неуспешно), то выполняется команда, следующая за двойной вертикальной чертой.

команда1 || команда2 — если команда1 выполнена неуспешно, то запускается на выполнение команда2

Команду, следующую после знаков объединения, не нужно заключать в двойные кавычки, иначе командный процессор удвоит их и сообщит об ошибке. Выполнение командной строки

cmd.exe /C «HELP IF» & ”HELP IF”

Завершится выполнением первой команды и сообщением об ошибке для второй:

«»HELP» не является внутренней или внешней командой, исполняемой программой или пакетным файлом.

Файлы с расширением .bat или .cmd в среде Windows стандартно открываются командным процессором аналогично рассмотренному выше примеру с перенаправлением ввода, когда последовательность команд считывается не с устройства ввода, а из текстового файла.

Использование переменных в командных файлах.

При работе с командными файлами, очень важное значение имеет такой инструмент как переменные окружения (environments) — переменные, значения которых определяют среду, в которой выполняются команда или пакетный файл. Иногда их называют переменными среды. Значения, принимаемые этими переменными формируются при загрузке Windows, регистрации пользователя в системе, старте или завершении некоторых приложений, и, кроме того, могут быть заданы с помощью специальной команды SET

переменная — имя переменной среды.
строка — строка символов, присваиваемая указанной переменной.

Например, командная строка
SET myname=Vasya
создает переменную myname , принимающую значение Vasya .

Значение, присвоенное какой-либо переменной, доступно для обработки в командной строке или в командном файле с использованием ее имени, заключенного в знаки процента — % . Наглядный пример — команда выдачи текста на дисплей ECHO в виде:
ECHO date
— выведет на экран слово «date», а команда
ECHO %date% выведет на экран значение переменной date — текущую дату в формате операционной системы.

Грамотное использование стандартных переменных окружения позволяют создавать командные файлы, которые будут одинаково выполняться на разных компьютерах, независимо от их конкретной конфигурации и пользовательских настроек. На практике, с помощью команды SET обычно задается и модифицируется путь поиска исполняемых программ — переменная окружения PATH .

SET PATH=C:\Windows;C:\windows\system32
После выполнения данной команды, поиск исполняемых файлов будет выполняться в каталоге C:\Windows , и, если результат неуспешен, в C:\windows\system32

При необходимости выполнить программу, например, myedit.exe , размещенную в каталоге C:\NewProgs необходимо либо указать полный путь исполняемого файла, либо сделать текущим каталогом каталог с программой и использовать только его имя. Если в командной строке не задан полный путь, а только имя исполняемого файла — myedit.exe то сначала будет выполняться поиск файла myedit.exe в текущем каталоге, и если он не будет найден — в каталогах, список которых определяется значением переменной PATH. Символ ; является разделителем элементов в списке путей поиска. Если в приведенном примере, текущим каталогом не является C:\NewProgs , и в остальных каталогах, заданных значением переменной PATH. нет исполняемого файла myedit.exe , то запуск приложения myedit.exe завершится ошибкой. Однако, если модифицировать значение переменной PATH, добавив в нее требующийся каталог, то указание полного пути исполняемого файла становится необязательным. Команда

SET PATH=C:\NewProgs;%path%
изменит текущее значение PATH, добавив каталог C:\NewProgs в начало списка. Для добавления каталога в конец списка используется несколько иная конструкция:

Выполнение команды SET без параметров позволяет получить текущие значения переменных окружения:

NUMBER_OF_PROCESSORS=1 — количество процессоров

OS=Windows_NT- тип ОС

Path=C:\WINDOWS\system32;C:\WINDOWS;C:\Program Files\Far — путь поиска исполняемых файлов.

PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE; .JS;.JSE;.WSF;.WSH — расширения для исполняемых файлов.

PROCESSOR_ARCHITECTURE=x86 — архитектура процессора.

PROCESSOR_LEVEL=6 — уровень (номер модели) процессора.

PROCESSOR_REVISION=0801 — версия процессора.

ProgramFiles=C:\Program Files — путь к папке «Program Files»

PROMPT=$P$G — формат приглашения командной строки $P — путь для текущего каталога $G — знак «>».

SystemDrive=C: — буква системного диска.

SystemRoot=C:\WINDOWS — каталог ОС Windows.

Значения некоторых переменных по команде SET не отображаются, хотя и присутствуют в системе. В основном, это переменные, принимаемые значения которых динамически изменяются:

%CD% — Принимает значение строки текущего каталога.

%DATE% — Принимает значение текущей даты.

%TIME% — Принимает значение текущего времени.

%RANDOM% — Принимает значение случайного десятичного числа в диапазоне 1 -32767.

%ERRORLEVEL% — Принимает текущее значение кода завершения задачи ERRORLEVEL

%CMDEXTVERSION% — Принимает значение версии командного процессора CMD.EXE для расширенной обработки команд.

%CMDCMDLINE% — Принимает значение строки, которая вызвала командный процессор.

Для просмотра текущего значения какой-либо переменной обычно используется команда:

ECHO %переменная%
ECHO %CD% — отобразить имя текущего каталога
ECHO %TIME% — отобразить текущее время
ECHO %ERRORLEVEL% — отобразить значение переменной ERRORLEVEL, специальной переменной, значение которой является индикатором результата выполнения предыдущей команды.

Значения, принимаемые переменными окружения, могут быть расширены с помощью специального признака — символа «

» , что позволяет получить их частичное значение, или изменить его подменой какой-либо части. Практические примеры использования расширений переменных будут рассмотрены ниже.

Значения переменных, установленных командой SET действительны только для текущего сеанса командной строки. Для создания постоянно действующих пользовательских и системных переменных окружения используется специальная команда SetX , позволяющая записывать имена и значения переменных в реестр. Подробное описание команды SetX имеется в разделе Список команд CMD Windows.

Передача параметров командному файлу.

Очень полезной особенностью работы с командными файлами является возможность получать значения параметров командной строки и использовать их в операциях внутри самого командного файла.

BAT-файл параметр1 параметр2 . параметрN
В самом командном файле первый параметр будет доступен как значение переменной %1 , второй — %2 и т.п. Путь и имя самого командного файла доступно в качестве значения переменной %0 . Для примера создадим командный файл, задачей которого будет выдача на экран значений введенных при его запуске параметров командной строки. Для вывода текста на экран используется команда ECHO текст , однако если «текст» заменить на %0, — то будет выдано имя командного файла, %1 — первый аргумент, заданный в строке запуска, %2 — второй и т.д.
Создаем, например, командный файл params.bat следующего содержания:

echo off echo Это командный файл %0
echo Первый параметр=%1
echo Второй параметр=%2
echo Третий параметр = %3

и запускаем его на выполнение следующей командой:

params.bat FIRST second «two words»

Параметры командной строки, содержащие пробелы должны заключаться в двойные кавычки.

В первой строке приведенного выше командного файла используется команда echo off , предназначенная для того, чтобы обрабатываемые командным процессором строки не выдавались на экран.

При обработке входных параметров необходимо знать, были ли они вообще заданы в командной строке. Для проверки наличия каких-либо входных параметров, передаваемых командному файлу, можно проверить, является ли значение переменной %1 пустым, что можно сделать, заключив ее, например в двойные кавычки, и проверив полученный результат на наличие этих кавычек, следующих подряд:

if «%1» EQU «» goto error
.
.
:error
Echo Должен быть задан хотя бы один входной параметр
exit

В командных файлах большого размера трудно обойтись без справочной информации в виде комментариев, для чего используется конструкция

REM пробел текст
Строки, начинающиеся с REM пробел , считаются комментариями и командным процессором игнорируются.

rem ECHO OFF выключает режим вывода содержания строк командного файла на экран
REM будет выводиться только результат их выполнения.
ECHO OFF
echo Первый параметр=%1
echo Второй параметр=%2
echo Третий параметр = %3

Если к имени команды первым символом добавляется @ , то независимо от режима ECHO (ON или OFF), вывод обрабатываемой строки не выполняется. Попробуйте в данном примере «ECHO OFF» заменить на «@ECHO OFF» — результат говорит сам за себя. Строка, которая выключает режим вывода, не будет выдаваться на экран. Вывод содержимого обрабатываемых строк ( эхо ) на экран устанавливается по команде ECHO ON и, обычно, используется в целях диагностики.

rem ECHO ON включает режим вывода содержания строк командного файла на экран
REM будет сама командная строка и результат ее выполнения,
REM но строки, начинающиеся символом @ выводиться не будут ECHO ON
@echo Первый параметр=%1
@echo Второй параметр=%2
@echo Третий параметр = %3

Переходы и метки.

В командных файлах можно использовать команды условного перехода, меняющие логику их работы в зависимости от возникновения определенных условий. В качестве иллюстрации создадим командный файл, целью которого будет присвоение заранее определенной буквы для съемных носителей. Условия таковы — есть 2 съемных диска, один из которых должен быть виден в проводнике как диск X: а второй — как диск Y: независимо от того, в какой порт USB они подключены и какие буквы присвоены им операционной системой. Для примера, будем считать, что реальные диски могут быть подключены как F: или G: Опознавание дисков будем выполнять по наличию файла с определенным именем (лучше всего такой файл сделать скрытым в корневом каталоге съемного диска и назвать его как-нибудь необычно):

Flashd1.let — на первом диске

Flashd2.let — на втором

Таким образом, задача командного файла заключается в том, чтобы проверить наличие на сменных дисках F: и G: файлов Flashd1.let или Flashd2.let и, в зависимости от того, какой из них присутствует, присвоить диску букву X: или Y:

Для поиска файла на диске воспользуемся командой IF EXIST :

IF EXIST имя_файла команда

В качестве команды, которая будет выполнена при удовлетворении условия используем SUBST , которая предназначена для сопоставления каталога и виртуального диска.

SUBST X: C:\ — — создать виртуальный диск X:, содержимым которого будет корневой каталог диска C:

Для решения поставленной задачи, создаем командный файл, например с именем setletter.bat , следующего содержания:

@ECHO OFF
IF EXIST G:\flashd1.let SUBST X: G:\
IF EXIST F:\flashd1.let SUBST X: F:\
IF EXIST G:\flashd2.let SUBST Y: G:\
IF EXIST F:\flashd2.let SUBST Y: F:\

После выполнения этого командного файла у вас появятся диски X: и Y:
Однако, если такой файл выполнить повторно, команда SUBST выдаст сообщение об ошибке — ведь диски X: и Y: уже существуют.
Поэтому, желательно обойти выполнение SUBST, если виртуальные диски X: и Y: уже созданы, или удалять их, используя SUBST с параметром -d перед подключением. Попробуем изменить командный файл setletter.bat с использованием команды перехода GOTO , осуществляющей передачу управления строке пакетного файла на указанную метку.

GOTO метка
В качестве метки используется строка символов, начинающаяся с двоеточия. Сделаем изменения в нашем командном файле, чтобы не возникало сообщений об ошибке:

@ECHO OFF
REM если не существует X: — то перейдем на метку SETX
IF NOT EXIST X:\ GOTO SETX
REM если существует X: — перейдем на проверку наличия Y:
GOTO TESTY
:SETX
IF EXIST G:\flashd1.let SUBST X: G:\
IF EXIST F:\flashd1.let SUBST X: F:\
:TESTY
REM если Y: существует — завершим командный файл.
IF EXIST Y:\ GOTO EXIT
IF EXIST G:\flashd2.let SUBST Y: G:\
IF EXIST F:\flashd2.let SUBST Y: F:\
REM выход из командного файла
:EXIT
exit

При выполнении измененного таким образом командного файла, сообщение об ошибке при выполнении SUBST исчезнет.

Конечно, данный пример не может считаться образцом программирования, но главная цель заключается не в написание оптимального командного сценария, а в демонстрации принципов использования меток и переходов. Во всех последующих примерах, насколько это возможно, используется именно такой подход — важна не оптимальность исходного текста, а его максимальная простота для понимания.

Одним из важнейших приемов при написании сложных командных файлов является анализ успешности выполнения конкретной команды или программы. Признаки ошибок при выполнении команд можно отслеживать, анализируя специальную переменную ERRORLEVEL , значение которой формируется при выполнении большинства программ. Обычно ERRORLEVEL равно нулю, если программа завершилась без ошибок и единице — при возникновении ошибки. Могут быть и другие значения, если они предусмотрены в выполняемой программе.

В качестве команды в строке командного файла можно использовать также командный файл. Причем, для передачи с возвратом обратно к точке выполнения вызывающего командного файла используется команда CALL . Попробуйте создать командный файл test.bat , следующего содержания:

@ECHO OFF
ECHO Вызов 1.bat
CALL 1.bat
ECHO Возврат.

В этом же каталоге, создайте второй файл под именем 1.bat , содержащий команду

PAUSE — приостановить выполнение командного файла до нажатия любой клавиши.

При выполнении командного файла test.bat будет выдано на экран сообщение
Вызов 1.bat
и управление получит командный файл 1.bat с одной единственной командой pause . После начатия клавиши на клавиатуре управление будет возвращено вызвавшему командному файлу на строку «ECHO Возврат.» и на экран будет выдано
Возврат.
Если же в файле test.bat убрать CALL, оставив «1.bat», то , выполнится командный файл 1.bat, и возврат в test.bat выполняться не будет.

Вызываемый командный файл может создавать переменные и присваивать им определенные значения, которые будут доступны для обработки в вызывающем файле. Попробуйте изменить файл test.bat следующим образом:

@ECHO OFF
ECHO Вызов 1.bat
CALL 1.bat
ECHO Получено из файла %MYFILE% значение MYNUMBER=%MYNUMBER%.

Вызываемый файл 1.bat изменим следующим образом:

@ECHO OFF
SET MYFILE=»Very good 1.bat»
SET MYNUMBER=99

Переменные вызываемого файла будут доступны в вызывающем файле.

Кстати, используя передачу управления командному файлу, можно организовать его зацикливание. Попробуйте добавить в конец файла test.bat строку:

Выйти из зацикливания командного файла можно по нажатию комбинации CTRL+Break .

Команда CALL может использоваться не только для вызова другого командного файла, для вызова внутренней подпрограммы. В этом случае в качестве аргумента используется не имя внешнего файла, а метка:

Примеры командных файлов.

Использование утилит командной строки и командных файлов нередко позволяют решить многие проблемы связанные с повседневной эксплуатацией компьютерной техники. Большинство системных администраторов и грамотных пользователей продолжают ими пользоваться, несмотря на то, что в Windows проявилось новое, более мощное и современное средство управления системой — WMI (Windows Management Instrumentation) и многофункциональная оболочка пользователя Power Shell . Очевидно, не в последнюю очередь, это обусловлено простотой реализации и достаточной эффективностью командной строки для решения повседневных задач обслуживания системы. Ниже приведены простые примеры с комментариями, которые демонстрируют некоторые возможности и способы применения .cmd и .bat


Своя команда для создания новых файлов.

В составе операционной системы Windows нет специальной команды для создания нового файла, но без нее можно легко обойтись несколькими способами:

Копирование с клавиатуры в файл

COPY CON myfile.txt

При выполнении этой команды данные с клавиатуры (стандартное устройство CON — консоль) будут заноситься в файл myfile.txt. Нажатие клавиши F6 или комбинации CTRL-Z завершит вывод.

ECHO 1 > myfile.txt

При выполнении этой команды будет создан файл myfile.txt, содержащий символ «1»

Комбинация перенаправления ввода и перенаправления вывода:

COPY CON > myfile.txt nul в файл. Использование устройства nul позволяет обойти стандартные операции ввода-вывода, которые для него реально не выполняются. При выполнении копирования с фиктивного устройства в файл будет создан пустой файл без каких-либо сообщений об ошибке.

COPY NUL myfile.txt

При работе в командной строке часто приходится создавать новые пустые файлы, поэтому, стоит подготовить свой командный файл (например, с именем nf.bat), а имя нового создаваемого файла передавать ему в качестве параметра при запуске.

@echo off
REM Создание пустого файла, имя которого задано в строке запуска
if «%1» EQU «» goto error
copy nul %1
goto exit
:error
ECHO ОШИБКА: Необходимо задать имя нового файла !
:exit

Для удобства использования, можно поместить этот командный в системный каталог (например, в C:\windows\system32) или любой другой, существующий в путях поиска, задаваемых значением переменной PATH). Теперь, в командной строке, находясь в любом каталоге можно одной командой создавать пустые файлы.

nf.bat myfile.txt — создать файл с именем myfile.txt в текущем каталоге.
nf.bat C:\myfile.txt — создать файл в корневом каталоге диска C:
nf.bat «%USERPROFILE%\myfile.txt» — создать файл в каталоге профиля текущего пользователя.

Возможность создания файлов в системных каталогах зависит от настроек безопасности системы и прав пользователя, в контексте учетной записи которого выполняется команда. Многие команды могут быть выполнены только пользователем с правами администратора.

Расширение командного файла (.bat) можно не набирать и команда еще больше упрощается:

В тексте командного файла присутствует проверка, задано ли имя создаваемого файла в командной строке (if «%1%» EQU «» goto error), и если не задано — выводится сообщение об ошибке и командный файл завершает свою работу.

В плане совершенствования функционала, можно добавить в этот командный файл проверку на существование файла с именем, указанным в командной строке и предупреждением пользователя о его возможной перезаписи.

Присвоение съемному диску одной и той же буквы.

Задача заключается в том, чтобы съемный USB диск (флэш диск) был доступен всегда под одной и той же буквой, независимо от того, на каком компьютере он используется и каким образом он был подключен. Для ее решения воспользуемся уже упоминаемой выше командой SUBST , но реализуем присвоение новой буквы диску с помощью подстановочного значения переменной %0 , создаваемой системой при каждом запуске командного файла.

Выберем для съемного диска желаемую букву, например — X.

Некоторые из переменных окружения, в том числе и переменная %0 , принимающая значение пути и имени выполняющегося командного файла, позволяют при определенной модификации с использованием специального признака — символа «

» , получить ее частичное значение (расширение переменной). Например, не полный путь файла, а только его имя, или каталог расположения, или букву диска, с которого он был запущен или еще около десятка различных элементов, связанных с подстановочными значениями переменной %0.

Имя диска, с которого был запущен командный файл доступно как переменная %

d0 .
Теперь создаем командный файл следующего содержания:
@echo off
subst X: %

что означает — создать виртуальный диск X:, которому сопоставлен логический диск, являющийся частью пути данного командного файла. Если такой файл записать на флэшку, и выбрать присваиваемую букву диска поближе к концу алфавита (чтобы не оказалась занятой другим реальным дисковым устройством) то после его запуска, в системе будет создаваться новый диск всегда под одной и той же буквой.

Дополнительное представление о подстановочных значениях переменной %0 можно получить из командного файла следующего содержания:

@echo off
ECHO ОБРАБАТЫВАЕТСЯ ФАЙЛ — %0
ECHO Дата/время создания/изменения командного файла — %

t0
ECHO Путь командного файла — «%

f0″
ECHO Диск командного файла — %

d0
ECHO Каталог командного файла — «%

p0″
ECHO Имя командного файла — %

n0
ECHO Расширение командного файла — %

x0
ECHO Короткое имя и расширение — %

s0
ECHO Атрибуты командного файла — %

a0
ECHO Размер командного файла — %

Создание архива, имя которого содержит дату и время.

Решим следующую задачу — нужно создать архив файлов, находящихся в каталоге C:\Program Files\FAR. Имя архивного файла должно состоять из текущего времени (часы.минуты.секунды — ЧЧ.ММ.СС.rar), и помещен он должен в новый каталог, имя которого должно состоять из текущей даты (день.месяц.год — ДД.ММ.ГГГГ). Для архивирования будем использовать архиватор RAR. Формат запуска для создания архива:

a — команда создания архива.
-r — ключ, определяющий архивирование подкаталогов (т.к. в исходной папке есть подкаталоги).

Таким образом, для решения задачи нужно правильно создать имена и пути для RAR. Для чего воспользуемся следующими исходными данными:

  • В командных файлах можно получить доступ к текущей дате и текущему времени — переменные %DATE% и %TIME%
  • В командных файлах можно создавать временные переменные с помощью команды SET.
  • Значение временных переменных может быть сформировано на основе %DATE% и %TIME% путем пропуска и (или) замещения их частей с помощью специальной конструкции с использованием символа

    и числового значения, определяющего группу символов из данных текущего значения переменной.

    Данный пример, как и многие другие в этой статье, представляет собой не самую оптимальную, с точки зрения программирования конструкцию, и представлен в виде, максимально доступном для понимания. Набравшись опыта в написании командных файлов, вы можете переделать его, превратив, буквально в пару строк.

    Дата, получаемая из переменной %DATE% при стандартных настройках региональных установок Windows 2000 выглядит следующим образом:
    Пн 21.01.2005 — День недели(2 символа)-Пробел(1 символ)-дата(10 символов) — всего 13 символов.
    В Windows XP/Vista/7-10 день недели отсутствует, что несколько упрощает обработку структуры даты. Для создания нового каталога в командной строке используется команда
    MD имя каталога .
    В нашем примере, имя каталога нужно получить из текущей даты. Создаем в памяти временную переменную VDATE и присваиваем ей значение переменной окружения DATE, без первых 3-х символов (Пн и пробел) — 20.01.2020:

    В версиях Windows, где в значении принимаемом переменной DATE, отсутствует день недели (3 символа — «Пн «), значение VDATE получится не тем, что требуется. Чтобы не анализировать признаки наличия данного кода, можно воспользоваться и другим вариантом — не пропустить первые 3 символа (

    3) от начала строки переменной DATE, а взять 10 символов от конца строки, указав число 10 со знаком «минус» — будет тот же результат, например, строка — 20.01.2020
    set VDATE=%date:

    Создаем каталог на диске C:, имя которого = текущая дата из переменной VDATE:

    MD C:\%VDATE%
    После выполнения этой команды на диске C: будет создан каталог с именем 20.01.2020

    Можно обойтись без лишних операторов, связанных с формированием значения переменной VDATE, которую я использовал для упрощения понимания структуры создаваемого имени каталога:
    MD %DATE:

    -10% — создать каталог, имя которого будет представлено в виде текущей даты ДД.ММ.ГГГГ
    Время, получаемое из переменной %TIME% выглядит так :
    14:30:59.93 — Часы, минуты, секунды, сотые доли секунды.
    Сотые доли — это в имени файла архива, пожалуй, лишнее. Поэтому, создаем временную переменную VTIME и присваиваем ей текущее время без последних 3-х символов, т.е пропускаем 0 символов от начала и отсекаем 3 символа от конца. Количество пропущенных и отсекаемых символов разделяются запятой:
    set VTIME=%time:

    0,-3%
    Теперь переменная VTIME принимает значение 14:30:59, но знак двоеточия ( : ) в имени файла использовать нельзя, это специальный символ, использующийся в именах устройств (диск C:\). Поэтому, для получения допустимого имени файла нужно заменить недопустимый символ на любой другой, например, точку. Для замены символов используется знак » = »
    set VTIME=%VTIME::=.% — заменить в переменной VTIME символ двоеточия на символ точки.
    Переменная VTIME примет значение 14.30.59

    rar.exe a -r C:\%VDATE%\%VTIME%.rar «C:\Program files\far\*.*»

    Теперь можно создать командный файл с содержимым, обеспечивающим архивирование заданного каталога с использованием даты и времени в имени архива:

    -10%
    md c:\%VDATE%
    set VTIME=%time:

    0,-3%
    set VTIME=%VTIME::=.%
    rar.exe a -r C:\%VDATE%\%VTIME%.rar «C:\Program files\far\*.*»

    Такой командный файл можно выполнять через автозагрузку, или как часть скрипта, при входе пользователя в домен, либо с помощью планировщика в заданное время, и у вас всегда будут в наличии упорядоченные по времени архивы критических данных.

    Выполнение каких либо действий в заданный интервал времени.

    Речь пойдет не о запуске командного файла в определенное время, а о выполнении какой-то его части только в определенный интервал времени, например, с 10:00 до 12:00. Решения данной задачи потребует сравнения текущего времени с указанным промежутком. Для примера, создадим командный файл, выполняющий запуск стандартного калькулятора Windows , только в том случае, если он выполняется в интервале времени от 10:00 до 12:00. Необходимо получить текущее время и выполнить проверку того, что оно не больше 12:00 и не меньше 10:00 .
    Команда IF позволяет выполнить сравнение строк при использовании формата:

    IF /I строка1 оператор_сравнения строка2 команда

    где оператор_сравнения принимает следующие значения:

    LEQ — меньше или равно

    GEQ — больше или равно

    а ключ /I , если он указан, задает сравнение текстовых строк без учета регистра. Этот обычно используется для сравнения текстовых строк в форме строка1==строка2 . Сравнения проводятся по общему типу данных, так что если строки 1 и 2 содержат только цифры, то обе строки преобразуются в числа, после чего выполняется их сравнение. Следовательно, для решения нашей задачи нужно сравнить строку из первых двух символов значения переменной TIME ( чч:мм:сс ) с заданным диапазоном :

    REM Время меньше 12:00 — перейти на анализ второго условия, иначе — выход

    0,2% lss 12 goto tst2

    Rem Время больше 10:00 — перейти к выполнению, меньше — завершить командный файл выполнив exit

    0,2% gtr 10 goto excalc

    Подобным же образом можно организовать проверку по дате, учитывая тот факт, что для данного способа сравнения необходимо использовать только числовые значения из переменных.

    Пример создания архива каталога «Мои Документы».

    Этот командный файл создает архивы содержимого папки «Мои Документы» пользователей Win2K/XP/7-10, размещая их в каталоги
    C:\ARHIV\Мои документы\Имя пользователя\Дата\время

    Используются переменные окружения USERPROFILE, USERNAME, WINDIR. Если вы разобрались с предыдущим примером, то содержимое данного командного файла не должно вызывать особых затруднений, поскольку в нем присутствуют комментарии ( rem ), поясняющие в короткой форме смысл и назначение последующих строк:

    @echo off
    rem Задается переменная FROM — откуда брать данные для архивирования
    set FROM=%USERPROFILE%\Мои Документы
    rem Задается переменная TO — куда помещать архивы
    set TO=C:\arhiv\Мои документы\%USERNAME%
    rem Создадим каталог ТО
    md «%TO%\»
    rem Сформируем имя подкаталога из текущей даты
    set VDATE=%date:

    -10%
    rem Сформируем имя файла архива из текущего времени — 12:00:00.99
    rem отбросим сотые доли секунды и заменим символ : на символ . Результат — 12.00.00

    0,-3%
    set vtime=%vtime::=.%
    rem Создадим подкаталог для файла архива
    md «%TO%\%VDATE%»
    rem Команда для архивирования. Ключ -r нужен для архивирования с вложенными папками
    rem вариант для архиватора ARJ : arj.exe a -r «%TO%\%VDATE%\%VTIME%.arj» «%FROM%\*.*»
    rem При использовании архиватора RAR:
    rar.exe a -r «%TO%\%VDATE%\%VTIME%.rar» «%FROM%\*.*»

    Если у вас возникнут проблемы связанные с неверной кодировкой символов русского алфавита в именах файлов и каталогов, попробуйте воспользоваться командой CHCP для смены кодовой страницы
    chcp 866 — установить кодовую страницу 866 (DOS-кодировка)
    chcp 1251 — установить кодовую страницу 1251 (Windows-кодировка)

    Этот командный файл можно значительно сократить, убрав ненужные переменные VTIME и VDATE, которые в данном примере, используются лишь для того , чтобы скрипт имел более наглядный и простой для понимания вид. Кроме того, имеет смысл воспользоваться более современным бесплатным архиватором, например — 7-Zip.

    В операционных системах Windows XP/Vista/7 формат даты по умолчанию не содержит название дня недели. Если есть необходимость получить это значение без изменения настроек системы и использования дополнительного программного обеспечения, можно воспользоваться сценарием Hindows Script Host (WSH).

    — создаем файл сценария для получения названия дня недели, пусть с именем weekday.vbs, и содержащим строку вывода на экран результата выполнения функции WeekDayName

    WScript.Echo WeekDayName(Weekday(Now), True)
    — выполняем скрипт WSH с использованием консольной версии программы обработки сценариев cscript.exe и подавлением лишних сообщений (ключ //nologo)
    cscript //nologo weekday.vbs

    Пример командного файла для получения названия дня недели с использованием функции WeekDayName :

    ECHO OFF
    echo WScript.Echo WeekDayName(Weekday(Now), True) > weekday.vbs
    for /f «Tokens=1*» %%i in (‘cscript /nologo weekday.vbs’) DO set DayName=%%i
    echo %DayName%
    REM Дальше можно использовать переменную DayName, а файл weekday.vbs — удалить
    REM ERASE dayname.vbs
    REM .

    Существуют задачи администрирования, которые решаются значительно проще с использованием сценариев WSH или Power Shell, а не командных файлов CMD Windows.

    Изменение даты и времени файлов или папок.

    В Windows, к сожалению, не существует стандартного консольного средства для изменения даты и времени создания, доступа и модификации файлов и папок. Кто имел дело с Unix/Linux знает, что в этих операционных системах имеется простая и удобная утилита touch с помощью которой можно изменить время последнего доступа или время модификации файла на текущее значение или на значение времени, заданное в качестве аргумента командной строки. Если файл не существует, утилита создает пустой файл с указанным именем и устанавливает время создания , последнего изменения, и последнего доступа. Поэтому, нередко touch используют для создания пустых файлов.

    Не секрет, что командные оболочки Unix/Linux значительно превосходит по своим возможностям командную строку Windows, поэтому, вполне понятно появление пакета UNIX Shell and Utilities для Windows NT и старше. Этот пакет представляет собой Windows-версии наиболее популярных утилит из среды Unix/Linux , которые могут выполняться как консольные команды в среде оболочки пользователя (в среде модуля sh.exe , входящего в пакет) или как исполняемые файлы в командной строке Windows. В набор входит более 200 программ от компании Mortice Kern Systems (MKS) , рекомендуемых Microsoft в качестве средства миграции с Unix на Windows.

    Благодаря набору UNIX Shell and Utilities многие, не решаемые в среде командной строки Windows задачи, можно решить с помощью unix-подобных утилит. И в том, числе, задачу изменения даты и времени создания, модификации и доступа файла или папки с помощью утилиты touch.exe Скачать, около 50Кб

    Справку по работе с touch.exe можно получить при запуске утилиты с принятым в Unix ключом «—help»

    При этом пользователю выводится краткая подсказка

    touch [-acm] [-r|-f файл] [-t [[CC]YY]MMDDhhmm.[SS]] file файл

    -a — Устанавливает время последнего доступа ( access )к файлу. Время последнего изменения не устанавливается, если явно не задан ключ -m ( modify )
    -c — Указывает утилите не создавать файл, если он не существует.
    -m — Устанавливает время последнего изменения файла.
    -r file — Использовать значения времени из файла, заданного аргументом file.
    -t time — Устанавливает время последнего изменения (модификации) и доступа в соответствии с указанным форматом date_time.
    Формат даты, указанный в ключе -t задается в соответствии с шаблоном [[СС]YY]MMDDhhmm[.SS]:
    СС — первые две цифры года (век).
    YY — последние две цифры года.
    MM — двузначный номер месяца.
    DD — двузначный номер дня.
    hh — значение часов даты.
    mm — значение минут даты.
    SS — значение секунд даты.

    Примеры использования утилиты touch.exe в командной строке Windows:

    touch C:\folder\myfile.txt — изменить время доступа и модификации файла C:\folder\myfile.txt на текущее. Если файл не существует, он будет создан с нулевой длиной и текущим временем создания, модификации и доступа.
    touch C:\folder — изменить время доступа и модификации папки C:\folder на текущее.
    touch -f C:\ntldr C:\folder — изменить время доступа и модификации папки C:\folder на время, установленное для файла C:\ntldr
    touch -t 199803080102.00 C:\folder — установить для существующей папки «C:\folder» значение даты и времени модификации — 1998г., 8 марта, 1 час : 2 минуты :00 секунд
    touch -t 1112.30 C:\folder — установить для существующей папки «C:\folder» значение даты и времени модификации — текущая дата, 11 час : 12 минут :30 секунд
    touch -a -t 2222.20 C:\folder — изменить только время доступа, время модификации не изменяется.

    Кроме утилиты touch для модификации времени файлов (но не папок) можно воспользоваться простой и удобной программой Юрия Усманова setdate . Скачать, архив zip размером около 16Кб).
    Примеры использования:

    setdate.exe -c C:\1.txt 22.11.2020 — установить для файла C:\1.txt дату создания 22.11.2020
    setdate.exe -m C:\1.txt 22.11.2020 — установить для файла C:\1.txt дату изменения (модификации) 22.11.2020
    setdate.exe -a C:\1.txt 22.11.2020 — установить для файла C:\1.txt дату доступа 22.11.2020
    setdate.exe -d C:\1.txt 22.11.2020 — установить для файла C:\1.txt все даты 22.11.2020

    Выполнение команд по расписанию.

    В операционных системах WINDOWS XP и старше существует утилита командной строки AT.EXE , позволяющая управлять задачами для планировщика заданий Windows, и таким образом, выполнить команду или пакетный файл в указанное время на локальном или удаленном компьютере.

    Мастер Йода рекомендует:  Поддержи проект

    В операционных системах Windows 7 и старше, утилита at.exe присутствует, но признана устаревшей и нерекомендуемой к использованию в будущем. Вместо нее рекомендуется использовать schtasks.exe , которая обладает большими возможностями, но сложнее в использовании. Примеры использования современной утилиты имеются в разделе со списком команд, а на данной странице, все же воспользуемся простой классической AT . Команда AT предназначена для запуска команд и программ в указанное время по определенным дням. Для использования команды AT необходимо, чтобы была запущена служба планировщика заданий (в современных ОС Windows, по умолчанию эта служба запущена всегда). .

    Примеры команды
    AT [\\имя_компьютера] [ [код] [/DELETE] | /DELETE [/YES]]
    AT [\\имя_компьютера] время [/INTERACTIVE] [ /EVERY:день[. ] | /NEXT:день[. ]] «команда»

    \\имя_компьютера — имя удаленного компьютера. Если этот параметр опущен, задача относится к локальному компьютеру.
    код — порядковый номер запланированной задачи. Указывается если нужно отменить уже запланированную задачу с помощью ключа /delete .
    /delete — отменить запланированную задачу. Если код задачи опущен, отменяются все задачи, запланированные для указанного компьютера.
    /yes — не будет запроса на подтверждение при отмене всех запланированных задач.
    время — Время запуска команды.
    /interactive — интерактивный режим, разрешение взаимодействия задачи с пользователем. Задачи, запущенные без этого ключа невидимы для пользователя компьютера.
    /every:день[. ] Запуск задачи осуществляется по указанным дням недели или месяца. Если дата опущена, используется текущий день
    месяца.
    /next:день[. ] Задача будет запущена в следующий указанный день недели (например в следующий четверг). Если дата опущена, используется текущий день месяца.
    «команда» — Команда или имя командного файла.

    Просмотр списка запланированных задач:

    AT
    — Удаление уже спланированных задач:
    AT 3 /DELETE — удаление задачи с номером 3
    AT /DELETE /YES — удаление всех задач без запроса подтверждения

    Создание интерактивных задач
    at \\SERVER 15:21 /interactive notepad.exe — на компьютере SERVER в 15:21 запустить видимое для пользователя приложение «Блокнот» (notepad.exe)
    AT 15:30 /interactive regedit.exe — в 15:30 запустить видимый редактор реестра на своем компьютере.

    Аналог «будильника» — всплывающие окна с текстом, напоминающие о необходимости каких-либо действий. Для посылки сообщения удаленному пользователю в операционных системах Windows 2k/XP используется утилита NET.EXE в режиме отправки сообщения SEND . На компьютерах должна быть запущена служба сообщений, иначе NET SEND не будет работать. В ОС Windows Vista и более поздних, отправку сообщений нужно выполнять с помощью утилиты msg.exe , поскольку команда net send в этих ОС больше не поддерживается. Описание команды MSG примерами.
    AT 17:30 net.exe send COMP Пора домой — в 17:30 отправить сообщение «Пора домой» пользователю компьютера COMP
    AT 17:30 msg.exe * /server:COMP Пора домой — то же, что и в предыдущем случае, но с использованием команды msg
    AT 17:39 msg.exe * Пора домой — запланировать на 17:39 отправку текстового сообщения «Пора домой» всем пользователям данного компьютера в среде Windows Vista / 7 / 8
    AT \\PROXY 15:30 net.exe send COMP2 Test Message — создать задание на компьютере PROXY, чтобы в 15:30 им было отправлено сообщение «Test Message» на компьютер COMP2
    AT 15:45 net.exe send имя своего компьютера Task Scheduler test — в 15:45 на своем компьютере показать сообщение «Task Scheduler test»

    Для доступа к удаленному компьютеру и создания заданий, пользователь, выполняющий команду AT должен обладать соответствующими правами по отношению к удаленной системе.

    Создаваемые командой AT задачи доступны для обработки в среде пользователя с помощью оснастки «Назначенные задания» Windows.
    Пуск — Панель управления — Назначенные задания — здесь можно просматривать, изменять и удалять созданные командой AT задачи. В Windows Vista / 7-8 используется меню — Панель управления — Администрирование — Планировщик заданий.

    Остановка и запуск системных служб.

    Для остановки и запуска служб из командной строки, в любой версии Windows, можно воспользоваться командой NET.EXE

    В качестве параметра команды можно использование как короткое, так и полное имя службы («Dnscache» — короткое, «DNS-клиент» — полное имя службы). Имя службы, содержащее пробелы заключается в двойные кавычки. Пример перезапуска службы «DNS-клиент»

    net stop «DNS-клиент»

    net start «DNS-клиент»

    То же, с использованием короткого имени:

    net stop Dnscache

    net start Dnscache

    Полное имя службы можно скопировать из «Панель управления» — «Администрирование» — «Службы» — Имя службы — «Свойства» — «Выводимое имя».
    То же самое, но в режиме командной строки: «Пуск» — «Выполнить» — services.msc .

    Для управления службами гораздо удобнее воспользоваться утилитой PsService.exe из утилит PsTools от Microsoft Sysinternals. Утилита не требует установки и работает в любой OS Windows. Кроме запуска и остановки, позволяет выполнить поиск конкретной службы на компьютерах локальной сети, опросить состояние и конфигурацию службы, изменить тип запуска, приостановить службу, продолжить, перезапустить.

    Для работы с системными службами в Windows XP и старше, можно использовать утилиту sc.exe , позволяющую не только остановить/запустить службу, но и опросить ее состояние, параметры запуска и функционирования, изменить конфигурацию, а также работать не только с системными службами, но и с драйверами. При наличии соответствующих прав, можно управлять службами не только на локальной, но и на удаленной машине. Примеры:
    sc.exe stop DNSCache — остановить службу DNSCache на локальном компьютере.
    sc \\192.168.0.1 query DNSCache — опросить состояние службы DNSCache на компьютере c IP-адресом 192.168.0.1
    sc \\COMP start DNSCache запустить службу DNSCache на компьютере COMP
    Подсказку по работе с утилитой можно получить, введя:
    sc /?

    Подробное описание команды SC с примерами имеется в разделе со списком команд Windows.

    Выдача значения переменной ERRORLEVEL .

    Этот простенький командный файл выдаст на экран значение переменной ERRORLEVEL по конкретной командной строке. Вначале выполняется проверка на наличие хотя бы одного входного параметра, и если ничего не задано, выдается сообщение об ошибке и происходит завершение по команде exit. Если же хотя бы один параметр задан, то входные параметры считаются командной строкой и выполняются, а значение ERRORLEVEL выдается с помощью команды ECHO. Содержимое файла (я назвал его echoEL.bat):

    @echo off
    if «%1» NEQ «» GOTO PARMOK
    ECHO Нужно задать командную строку для определения ERRORLEVEL
    exit
    :PARMOK
    %1 %2 %3 %4 %5 %6 %7 %8
    ECHO %1 %2 %3 %4 %5 %6 %7 %8 ERRORLEVEL=%ERRORLEVEL%

    echoEL.bat NET SHARE — будет выполнена команда NET SHARE (отобразить список разделяемых сетевых ресурсов) и выдан код ERRORLEVEL
    echoEL.bat NET SHARE X»=»C:\ — будет выполнена команда NET SHARE X:=C:\ (создать разделяемый сетевой ресурс с именем X, и путем в корневой каталог диска C:) Обратите внимание на то, что знак равенства = заключен в двойные кавычки.
    Перечисленные выше варианты задают корректную командную строку. Для закрепления навыков, попробуйте выполнить командный файл с командой Net Send в среде Windows 7-10 (где SEND — неверный параметр для NET.EXE), с командой, в которой присутствуют ошибочные параметры (например – net share abc ) или вообще задайте несуществующую команду и вы увидите, каким образом меняется значение переменной ERRORLEVEL, в зависимости от причины, вызвавшей невозможность выполнения команды.

    Диалог с пользователем

    Для диалога с пользователем можно использовать команду:
    SET /P имя переменной = текст
    при выполнении которой, на экран выдается текстовое сообщение текст и ожидается ввод ответа. Например, выполним запрос ввода пароля и присвоим его значение переменной «pset»:

    set /p pset=»Enter password — »
    echo Password is — %pset%

    Недостатком данного способа является невозможность продолжения выполнения командного файла при отсутствии ответа пользователя, поэтому очень часто, вместо команды set используются другие средства, в том числе и сторонние программы. В составе операционных систем семейства Microsoft Windows имеется утилита командной строки CHOICE позволяющая довольно просто реализовать диалог с пользователем и проанализировать введенные им данные, однако в разных версия ОС утилита может присутствовать в стандартной поставке ( Windows 7 ) или входить в наборы дополнительных программных инструментов ( Resource Kit Windows XP ) Простейшая версия — CHOICE.COM Скачать (1.7кб), работающая во всех ОС семейства Windows.
    CHOICE выдает пользователю текстовое сообщение и ожидает выбора одного из заданных вариантов ответа (нажатия клавиш на клавиатуре). По результатам выбора формируется переменная ERRORLEVEL, значение которой равно порядковому номеру выбора. По умолчанию вариантов выбора два — Y или N. Если ответ равен Y — то ERRORLEVEL=1, если N — то ERRORLEVEL=2. Можно использовать более 2-х вариантов выбора и есть возможность задать выбор по умолчанию, когда пользователь за определенное время не нажал ни одной клавиши. Формат командной строки:

    CHOICE [/C[:]choices] [/N] [/S] [/T[:]c,nn] [text]
    /C[:]choices &nbsp — &nbsp определяет допустимые варианты выбора. Если не задано — YN
    /N — &nbsp не выдавать варианты выбора.
    /S &nbsp — &nbsp строчные и заглавные буквы отличаются.
    /T[:]c,nn &nbsp&nbsp&nbsp — &nbsp Выбор по умолчанию равен «c» через «nn» секунд
    text — Строка текста выводимая в качестве запроса

    Создадим командный файл, демонстрирующий использование CHOICE. Он будет реагировать на нажатие клавиш «1»,»2″,3″ и «0» . При нажатии «0» выполняется завершение, а при нажатии остальных — сообщение пользователю. Если в течении 10 секунд ничего не нажато — завершение.

    @ECHO OFF
    :CHOICE
    CHOICE /C:1230 /T:0,10 Ваш вариант
    IF %ERRORLEVEL% EQU 4 GOTO EXIT
    echo Ваш выбор=%ERRORLEVEL%
    GOTO CHOICE
    :EXIT

    Теперь, используя CHOICE вы можете создавать командные файлы, логика работы которых может определяться пользователем.

    Задержки в командных файлах

    Когда-то, еще в DOS, для организации ожидания в командном файле использовалась команда SLEEP, но затем она почему-то перекочевала из стандартного установочного набора Windows в дополнительный Resource Kit. Можно просто скопировать его оттуда в каталог \system32 и использовать в ваших командных файлах.

    : SLEEP N — где N — количество секунд для задержки.

    Если же Resource Kit нет под рукой, можно воспользоваться ранее рассмотренной командой CHOISE без вывода текста и с автоматическим формированием ответа через nn секунд (1-99):

    choice.com /T:y,10 /N — задержка на 10 секунд

    Более универсальный и простой способ основан на использовании утилиты ping.exe для интерфейса замыкания на себя localhost (локальная петля, петлевой интерфейс). Опрос данного интерфейса командой ping ( ping на имя хоста localhost или IP- адрес 127.0.0.1) выполняется без реальной передачи данных, т.е. практически мгновенно, а интервал между посылкой icmp-пакетов составляет 1 секунду. Указывая количество «пингов» с помощью ключа «-n» можно получить задержку на n секунд:

    ping 127.0.0.1 -n 30 > nul — даст задержку на 30 секунд
    Перенаправление вывода команды ping на фиктивное устройство nul ( > nul ) позволяет убрать сообщения утилиты ping.exe с экрана.

    В составе команд CMD Windows 7-10 имеется команда TIMEOUT для организации режима ожидания заданного интервала времени, либо до нажатия любой клавиши на клавиатуре. Описание команды – в разделе «Список команд CMD Windows»

    Определение доступности IP-адреса

    Для проверки доступности сетевого узла чаще всего используется упоминаемая выше стандартная утилита ping.exe . Утилита выполняет отправку ICMP-пакета на проверяемый узел (эхо-запрос) и ожидает ответный пакет (эхо-ответ). К сожалению, результат проверки доступности узла не в полной мере коррелируется со значением переменной ERRORLEVEL и может быть получен только из данных стандартного вывода ping. В разных версия ОС Windows, утилита ping.exe может устанавливать нулевое значение ERRORLEVEL даже при недоступности узла, но при наличии в командной строке верных параметров командной строки. Иными словами, в некоторых случаях, требуемый сценарием результат выполнения определенной команды трудно, или вообще нельзя определить по значению переменной ERRORLEVEL, и приходится анализировать более достоверные признаки успешного или неуспешного выполнения команды, например, наличие определенного текста в ее выводимых сообщениях.

    Если внимательно посмотреть на сообщения программы ping.exe при опросе доступного и недоступного узла, то можно заметить, что они значительно отличаются :
    ping 456.0.0.1 — ping на несуществующий адрес

    Ответ на такую команду может отличаться от конкретной версии утилиты, и может быть приблизительно таким

    При проверке связи не удалось обнаружить узел 456.0.0.1. Проверьте имя узла и повторите попытку.

    ping yandex.ru — ping на адрес узла yandex.ru

    Ответ на ping доступного узла:

    Обмен пакетами с yandex.ru [87.250.250.11] по 32 байт:
    Ответ от 87.250.250.11: число байт=32 время=10мс TTL=55

    Таким образом, для решения задачи определения доступности узла в командном файле, достаточно проанализировать характерные слова в выводе ping.exe при успешном ответе. Наиболее характерно в данном случае наличие слова TTL . Оно никогда не встречается при возникновении ошибки и состоит всего лишь из символов английского алфавита. Для поиска «TTL» в результатах ping.exe удобнее всего объединить ее выполнение в цепочку с командой поиска строки символов FIND.EXE (конвейер ping и find). Справку по использованию можно получить командой

    Поиск текстовой строки в одном или нескольких файлах.
    FIND [/V] [/C] [/N] [/I] [/OFF[LINE]] «строка» [[диск:][путь]имя_файла[ . ]]
    /V Вывод всех строк, НЕ содержащих заданную строку.
    /C Вывод только общего числа строк, содержащих заданную строку.
    /N Вывод номеров отображаемых строк.
    /OFF[LINE] Не пропускать файлы с установленным атрибутом «Автономный».
    /I Поиск без учета регистра символов.
    «строка» Искомая строка.
    [диск:][путь]имя_файла
    Один или несколько файлов, в которых выполняется поиск.
    Если путь не задан, поиск выполняется в тексте, введенном с клавиатуры
    либо переданном по конвейеру другой командой.

    Как видно из справки, find.exe можно использовать для поиска нужной строки символов в тексте, переданном по конвейеру командой ping.exe. Если текст найден, значение переменной ERRORLEVEL будет равно 0

    ping -n 1 COMPUTER | find /I «TTL» > nul
    if %ERRORLEVEL%==0 goto LIVE
    ECHO computer не доступен
    подпрограмма обработки недоступного состояния
    .
    Exit
    :LIVE — начало подпрограммы обработки состояния доступности узла
    .
    .

    В конвейер добавлена команда перенаправления стандартного вывода на фиктивное устройство nul , т.е. подавление вывода. Ключ -n 1 задает однократный опрос узла COMPUTER для ping.exe.

    Определение текущей версии Windows.

    Так же, как и в предыдущем примере, для определения версии операционной системы в процессе выполнения командного файла, можно воспользоваться поиском определенных фрагментов текста в результатах выполнения команд, отображающих сведения о системе. Например, во всех операционных системах семейства Windows ( и даже в DOS ) существует специальная команда VER , предназначенная для отображения сведений о версии ОС. В результате выполнения команды, например, в среде Windows XP, отображается текст:

    Microsoft Windows XP [Версия 5.1.2600]

    В среде Windows 7, текст отличается:

    Microsoft Windows [Version 6.1.7600]

    В среде Windows 10:

    Microsoft Windows [Version 10.0.14393]

    Таким образом, результат выполнения команды VER в среде разных версий Windows, всегда содержит определенный текст, характерный только для данной ОС, и задача определения версии решается довольно просто:

    if %errorlevel% == 0 set curr_OS=Windows 2000

    if %errorlevel% == 0 set curr_OS=Windows XP


    ver | find /i «5.2.3»

    if %errorlevel% == 0 set curr_OS=Windows Server 2003

    if %errorlevel% == 0 set curr_OS=Windows Vista

    ver | find /i «6.1»>nul

    if %errorlevel% == 0 set curr_OS=Windows 7

    if «%curr_OS%»==»» set curr_OS=Unknown

    echo Текущая версия ОС — %curr_OS%

    Можно также воспользоваться более информативным выводом команды NET CONFIG WORKSTATION . При выполнении в среде Windows XP вывод команды представляет собой следующий текст:

    Имя компьютера \\\COMP1

    Полное имя компьютера COMP1.Mydomain

    Имя пользователя USER2

    Активная рабочая станция на

    Версия программы Windows 2002

    Домен рабочей станции Mydomain

    DNS-имя домена рабочей станции Mydomain

    Домен входа Mydomain

    Интервал ожидания открытия COM-порта (с) 0

    Отсчет передачи COM-порта (байт) 16

    Таймаут передачи COM-порта (мс) 250

    Команда выполнена успешно.

    Для среды Windows 7 результат выполнения команды выглядит так:

    Имя компьютера \\COMP1

    Полное имя компьютера COMP1.Mydomain

    Имя пользователя user2

    Активная рабочая станция на

    Версия программы Windows 7 Professional

    Домен рабочей станции Mydomain

    Домен входа Mydomain

    Интервал ожидания открытия COM-порта (с) 0

    Отсчет передачи COM-порта (байт) 16

    Таймаут передачи COM-порта (мс) 250

    Команда выполнена успешно.

    Как видим, строка Версия программы . . . тоже может быть использована для определения версии Windows, в среде которой выполняется командный файл. Кроме того, в результатах выполнения команды NET CONFIG WORKSTATION для серверных версий Windows всегда присутствует слово Server .

    net config workstation | find /i «Windows 2000»

    if %errorlevel% == 0 set curr_OS=Windows 2000

    REM net config workstation | find /i «Windows 2002»

    if %errorlevel% == 0 set curr_OS=Windows XP

    net config workstation | find /i «Server 2003»

    if %errorlevel% == 0 set curr_OS=Windows Server 2003

    net config workstation|find /i «Windows Vista»

    if %errorlevel% == 0 set curr_OS=Windows Vista

    net config workstation | find /i «Windows 7» > nul

    if %errorlevel% == 0 set curr_OS=Windows 7

    REM Плюс поиск по «Professional»

    net config workstation | find /i «Версия программы» | find «Professional»

    if errorlevel 0 if not errorlevel 1 set curr_OS=Windows 7 PRO

    REM Если версия неизвестна:

    if «%curr_OS%»==»» set curr_OS=Unknown

    Кроме рассмотренных способов можно применить еще множество, в том числе, используя утилиту редактирования реестра в командной строке reg.exe . На пример:

    Reg Query «HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion» /V ProductName — отобразить содержимое параметра реестра с названием Windows. Пример отображаемой информации при выполнении команды в среде Windows 10 Pro:

    ProductName REG_SZ Windows 10 Pro

    Результат для случая Windows XP Professional:

    ProductName REG_SZ Microsoft Windows XP

    Имя параметра ProductName и тип данных REG_SZ можно не отображать, выделив только подстроку с названием системы с помощью FOR:

    For /F «Tokens=2* Delims= » %%A In (‘Reg Query «HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion» /V ProductName^|Find «REG_SZ»‘) Do Set OS1=%%B

    При выполнении данного командного файла будет отображаться только название ОС Windows.

    Поиск компьютеров с запущенным приложением

    В операционных системах Windows XP и старше имеется стандартная утилита для получения списка процессов, выполняющихся в системе tasklist.exe . Она обладает очень неплохими возможностями и может использоваться для поиска выполняющихся приложений как на локальном, так и удаленном компьютере. Также, можно воспользоваться вспомогательной утилитой PSList.exe из пакета PSTools от Microsoft Sysinternals. Обе утилиты можно использовать для поиска приложений, выполняющихся на локальном или удаленном компьютере, но PSlist имеет более простой функционал, менее известна среди компьютерных специалистов и выбрана в качестве средства решения поставленной задачи. Для того, чтобы использовать стандартную утилиту tasklist.exe , потребуются совсем незначительные переделки, связанные с различием в синтаксисе команд.

    Задача заключается в том, что нужно создать командный файл, который бы обнаруживал в локальной сети компьютеры с выполняющейся программой, имя которой (начальная часть имени), задается в качестве параметра при запуске, например, game . При обнаружении, например, требуется передать сообщение пользователю компьютера ADMINCOMP и обнаруженное приложение принудительно завершить.

    Для поиска будем использовать утилиту Pslist.exe и анализировать ее код возврата. Значение переменной ERRORLEVEL равное нулю означает, что утилита обнаружила на удаленном компьютере процесс, удовлетворяющий условиям поиска. Имя процесса для поиска будем задавать в качестве параметра при запуске командного файла. Присвоим нашему командному файлу имя psl.bat . Запуск с параметром будет выглядеть следующим образом:
    psl.bat game

    В случае, когда в командном файле используется параметр, не помешает проверить, задан ли он в командной строке при запуске, и, если не задан, завершить выполнение, отобразив предупреждающее сообщение пользователю. Если же параметр задан, выполнение файла будет продолжено, например, к метке «PARMOK»:
    @echo off
    if «%1» NEQ «» GOTO PARMOK
    ECHO Нужно задать имя процесса для поиска
    exit
    :PARMOK

    На следующем шаге нужно обеспечить последовательное формирование IP-адресов компьютеров для командной строки утилиты PSlist . В качестве простого примера, можно воспользоваться присвоением временной переменной значения постоянной составляющей адреса для локальной сети (например — 192.168.0.) и вычисляемого значения младшей части (например, в диапазоне 1-254).

    Например, нам необходимо просканировать компьютеры в диапазоне адресов:
    192.168.0.1 — 192.168.0.30:

    set IPTMP=192.168.0. — старшая часть адреса
    set /A IPLAST=1 — младшая часть. Ключ /A означает вычисляемое числовое выражение
    set IPFULL=%IPTMP%%IPLAST% — значение полного IP-адреса.

    Командная строка для PSlist будет выглядеть cледующим образом:
    pslist \\%IPFULL% %1
    Теперь осталось только циклически запускать PSlist, прибавляя в каждом цикле единицу к младшей части адреса, пока ее значение не достигнет 30 и анализировать значение ERRORLEVEL после выполнения. Для анализа результата будем выполнять переход командой:
    GOTO REZULT%ERRORLEVEL%
    обеспечивающей переход на метку REZULT0 при обнаружении процесса и на REZULT1 — при его отсутствии.

    Окончательное содержимое командного файла:

    @echo off
    if «%1» NEQ «» GOTO PARMOK
    ECHO Нужно задать имя процесса для поиска
    exit
    :PARMOK
    set IPTMP=192.168.0.
    rem Зададим начальное значение » хвоста » IP- адреса
    set /A IPLAST=1
    rem M0 — метка для организации цикла
    :M0
    rem Переменная IPFULL — полное значение текущего IP-адреса
    set IPFULL=%IPTMP%%IPLAST%
    rem Если » хвост «больше 30 — на выход
    IF %IPLAST% GTR 30 GOTO ENDJOB
    pslist \\%IPFULL% %1
    GOTO REZULT%ERRORLEVEL%
    :REZULT0
    rem Если найдено приложение- отправим сообщение на ADMINCOMP
    net send ADMINCOMP Запущено %1 — %IPFULL%
    rem И завершим приложение с помощью PSkill
    pskill \\%IPFULL% %1
    :REZULT1
    rem Сформируем следующий IP-адрес
    set /A IPLAST=%IPLAST% + 1
    rem Перейдем на выполнение следующего шага
    GOTO M0
    rem Завершение работы
    :endjob
    exit

    В заключение добавлю, что для того, чтобы этот скрипт работал, PSlist.exe и PSkill.exe должны быть доступны в путях поиска исполняемых файлов, например в каталоге WINDOWS\SYSTEM32. Пользователь, запускающий его, должен обладать правами администратора по отношению к сканируемым компьютерам. И, если текущий пользователь таковым не является, то в параметры запуска утилит PSlist.exe и PSkill.exe нужно добавить ключи, задающие имя пользователя и пароль. В качестве альтернативы утилите PSKill.exe можно воспользоваться стандартной Taskkill.exe . Использование стандартных утилит tasklist.exe и taskkill.exe ограничено тем фактором, что их параметры командной строки не допускают возможности задания имени пользователя и пароля для доступа к удаленному компьютеру.

    Поиск компьютеров с запущенным приложением по списку

    В предыдущем примере использовался прямой перебор IP-адресов компьютеров в локальной сети, что не всегда эффективно, поскольку в процедуру опроса могут быть вовлечены и выключенные компьютеры. Решим задачу другим способом — создадим текстовый файл со списком компьютеров и опросим их по этому списку.
    Список можно получить из сетевого окружения с использованием команды:
    net.exe view > comps.txt
    После выполнения такой команды файл comps.txt будет содержать список следующего вида:

    Имя сервера &nbsp &nbsp &nbsp Заметки
    &nbsp &nbsp &nbsp
    —————————
    \\AB1
    \\AB2
    \\ALEX
    \\BUHCOMP
    \\PC2
    \\SA
    \\SERVER
    Команда выполнена успешно.

    Обрабатывать содержимое этого текстового файла будем с помощью команды FOR с ключом /F:

    FOR /F [«ключи»] %переменная IN (имя файла) DO команда [параметры]

    Данная команда позволяет получить доступ к строкам в текстовом файле с использованием ключей:
    skip=n — пропустить n строк от начала файла (в нашем примере — 4 строки)
    eol= &nbsp&nbsp — не использовать строки, начинающиеся с заданного символа. (в нашем случае — пропустить последнюю строку, начинающуюся с кириллического символа «К» — «Команда выполнена успешно»
    tokens=n — брать для обработки n-е слово в строке (в нашем случае — 1-е слово)

    Окончательный вид команды:

    FOR /F «eol=К skip=4 tokens=1 » %%I IN (comps.txt) DO (
    pslist.exe -u admin -p pass %%I %1
    IF NOT ERRORLEVEL 1 net.exe send ADMINCOMP %%i %1
    )

    Обратите внимание — в пакетных файлах для переменных команды FOR используется два знака процента (запись %%переменная вместо %переменная ) и имена переменных учитывают регистр букв ( %i отличается от %I ).
    Работать это будет следующим образом — пропускаются первые 4 строки текстового файла со списком компьютеров, и далее в цикле переменной I присваивается значение первого слова (текст от начала строки до разделителя — пробела), выполняется утилита PSlist.exe, для которой в качестве имени компьютера используется значение этой переменной. Если ERRORLEVEL менее 1 — задача с искомым именем присутствует в списке процессов и выполняется отправка сообщения с помощью NET SEND.
    Окончательное содержимое командного файла:

    @echo off
    if «%1» NEQ «» GOTO PARMOK
    ECHO Нужно задать имя процесса для поиска
    exit
    :PARMOK
    REM
    REM Создадим текстовый файл comps.txt со списком компьютеров с помощью NET.EXE VIEW
    net view /DOMAIN:MyDomain > comps.txt
    REM
    REM FOR /F «параметры» — использование данных из файла
    REM eol=К — не использовать строки, начинающиеся с «К» — «Команда выполнена успешно»
    REM skip=4 — пропустить первые 4 строки в файле
    REM tokens=1 — брать для обработки 1-е слово в строке
    REM
    FOR /F «eol=К skip=4 tokens=1 » %%i in (comps.txt) do (
    pslist.exe -u admin -p pass %%i %1
    IF NOT ERRORLEVEL 1 net.exe send %COMPUTERNAME% Компьютер — %%i процесс — %1
    )

    Выключение компьютеров по списку, созданному на основе сетевого окружения.

    Предыдущий пример наводит на мысль, что можно было бы, например, создать пакетный файл для быстрого выключения всех компьютеров в локальной сети. Выключение производится утилитой стандартной утилитой Shutdown.exe (описание в разделе со списком команд CMD Windows – команда Shutdown ). Как и в предыдущем примере, сначала создается файл со списком компьютеров на основе сетевого окружения, а затем выполняется их поочередное выключение, при условии, что выключаемым компьютером не является ”свой”, на котором выполняется данный командный файл. Содержимое файла:

    rem @echo off
    REM Здесь нужно задать
    REM имя домена или рабочей группы для которых строится список машин для выключения
    set MyDomain=имя домена
    REM
    REM Создадим текстовый файл comps.txt со списком компьютеров с помощью NET VIEW
    net view /DOMAIN:%MyDomain% > comps.txt
    REM
    REM FOR /F «параметры» — использование данных из файла
    REM eol=К — не использовать строки, начинающиеся с «К» — «Команда выполнена успешно»
    REM skip=4 — пропустить первые 4 строки в файле
    REM tokens=1 — брать для обработки 1-е слово в строке
    FOR /F «eol=К skip=4 tokens=1 » %%i in (comps.txt) do (
    REM Свой компьютер выключать не будем
    REM Если имя компьютера не равно COMPUTERNAME — выключаем
    IF /I %%i NEQ %COMPUTERNAME% shutdown -f -s -t 0 -m %%i
    )

    Командный файл должен выполняться в контексте учетной записи пользователя с правами администратора по отношению к выключаемым компьютерам. Имя домена или рабочей группы задается в строке:
    set MyDomain=

    В реальной жизни из списка выключаемых компьютеров нужно исключить несколько штук, для чего удобно использовать команду FIND в цепочке с net.exe в скрипте формирования списка на основе сетевого окружения. Данная команда используется для поиска строк в текстовом файле по шаблону. Ключ /V используется для поиска строк не совпадающих с шаблоном. Для выключения компьютеров, исключая server1. server4 удобно использовать такой вариант:

    net view | find «\\» | find /v «сервер1» | find /v «сервер2» | find /v «сервер3» | find /v «сервер4» > comps.txt
    FOR /F «tokens=1 » %%i in (comps.txt) do shutdown.exe -f -s -m %%i

    Поиск в локальной сети включенных компьютеров.

    В данном примере речь идет о создании командного файла, позволяющего «собрать» список IP-адресов узлов локальной сети, включенных на данный момент времени. Ничего принципиально нового в плане создания командных файлов здесь нет, но тем не менее, задача поиска включенных узлов в локальной сети встречается довольно часто, и решить ее описанными выше способами, с использованием ping.exe и net view удается далеко не всегда, поскольку в современных версиях операционных систем семейства Windows настройки брандмауэров по умолчанию, задают довольно жесткие правила, блокирующие сетевые соединения извне, и ответы на эхо-запрос. Другими словами, включенный в локальную сеть компьютер ( или другое сетевое устройство ) может не отображаться в сетевом окружении Windows и не отвечать на эхо-запросы ( «пинги» ).

    Прием, используемый для получения списка включенных сетевых устройств при решении данной задачи остается прежним – необходимо определить характерные отличия в выходных сообщениях стандартных сетевых утилит в случае, когда устройство выключено, и когда – защищено параноидальными настройками брандмауэра. Для этого можно воспользоваться стандартной командой arp позволяющей просматривать содержимое таблиц разрешения IP-адресов в физические ( MAC ) адреса.

    При любой передаче пакетов IP-протокола с данного компьютера на IP-адрес другого сетевого устройства в локальной сети, программные средства сетевых протоколов выполняют процедуру определения физического адреса сетевого адаптера получателя ( MAC-адрес получателя). Всем сетевым устройствам отправляется специальный широковещательный запрос ( запрос который будет принят всеми компьютерами данной подсети), означающий «чей MAC – адрес соответствует такому-то IP-адресу». Если какое-либо сетевое устройство опознало свой собственный IP-адрес, оно отправит ARP-ответ, содержащий соответствующий MAC-адрес, который будет сохранен в специальной таблице соответствия адресов IP и MAC, хранящейся в оперативной памяти компьютера, отправившего ARP-запрос. Запись информации в данную таблицу выполняется только при необходимости передачи любых данных по протоколу IP, что можно инициировать, например, пингованием опрашиваемого устройства. Даже если настройками брандмауэра полностью закрыты все соединения извне и блокируется протокол ICMP ( устройство не «пингуется» ) , в буферной памяти сервиса ARP будет присутствовать запись соответствия IP и MAC, если устройство было подключено к локальной сети и участвовало в процедуре разрешения адреса . Таким образом, отсутствие ответа на пинг и наличие записи для пингуемого IP-адреса в ARP-кэш является признаком того, что устройство включено и присутствует в локальной сети.

    Для просмотра содержимого ARP-кэш можно воспользоваться командой

    arp -a — отобразить все записи в таблице ARP

    Пример отображения таблицы ARP:

    Интерфейс: 192.168.0.29 — 0xa

    адрес в Интернете Физический адрес Тип

    192.168.0.1 00-1e-13-d6-80-00 динамический

    192.168.0.3 60-eb-69-08-18-d2 динамический

    Интерфейс: 192.168.234.1 — 0xf

    адрес в Интернете Физический адрес Тип

    192.168.234.255 ff-ff-ff-ff-ff-ff статический

    224.0.0.22 01-00-5e-00-00-16 статический

    224.0.0.252 01-00-5e-00-00-fc статический

    239.255.255.250 01-00-5e-7f-ff-fa статический

    Как видно из приведенной таблицы, например IP – адресу 192.168.0.1 соответствует физический адрес сетевого адаптера, равный 00-1e-13-d6-80-00 . Если же сетевой адаптер с данным адресом будет недоступен, то такой записи в таблице не будет.

    Для понимания алгоритма опроса сети необходимо учесть следующее:

    Разрешение адресов ARP используется только при передаче данных по IP-протоколу в пределах сегмента локальной сети, задаваемого маской. Так, например, для примера с IP адресом 192.168.0.1 и маски 255.255.255.0 это будет диапазон IP от 192.168.0.1 до 192.168.0.254. Обращение же к любому другому адресу будет выполняться через устройства маршрутизации . Т.е. при выполнении команды

    В таблице ARP будет не MAC-адрес сетевого адаптера, соответствующего IP-адресу узла с именем «yandex.ru», а MAC-адрес шлюза, через который выполнилась отправка IP-пакета для доставки получателю в «чужой» сети.

    Ниже приводится простой пример командного файла, определяющего список включенных сетевых устройств локальной сети по результатам выполнения команд PING и ARP.

    REM Устанавливаем значение переменной IPTMP — постоянной части IP-адреса

    REM Переменная N задает количество опрашиваемых IP-адресов

    rem Переменная IPMIN задает начальный IP-адрес. ( полный адрес состоит из IPTMP IPMIN )

    REM результаты будут записаны в файл oprosipplus.txt

    ECHO %DATE% Опрос ARP %N% адресов начиная с %IPTMP%%IPMIN% >> oprosipplus.txt

    rem M0 — метка для организации цикла

    rem Переменная IPFULL — полное значение текущего IP-адреса, состоящего из IPTMP И IPMIN

    rem Если » хвост «больше N — на завершение работы

    IF %IPMIN% GTR %N% GOTO ENDJOB

    REM если « хвост » меньше N – продолжим опрос

    REM выполним пинг и проверим наличие записи в ARP-кэш

    ping -n 1 %IPFULL%

    arp -a | find /I «%IPFULL%»

    REM Если запись есть — запишем это событие в журнал oprosipplus.txt

    if %ERRORLEVEL%==0 Echo %IPFULL% >> OPROSipPLUS.txt

    rem Сформируем следующий IP-адрес

    set /A IPMIN=%IPMIN% + 1

    rem Перейдем на выполнение следующего шага

    rem Завершение работы

    Работа с дисками, файлами и каталогами.

    Задача — определить буквы дисков, присутствующих в системе и записать результат в файл с именем tstdsk.txt текущего каталога. Можно воспользоваться выполнением команды IF EXIST в цикле FOR для набора из букв латинского алфавита, т.е для каждой буквы диска проверить наличие корневого каталога командой

    IF EXIST буква диска:\

    Сначала создаем пустой файл:

    copy nul tstdsk.txt

    Это действие необязательно, если файла не существует, но в противном случае, результаты будут дописываться в конец файла, и если в нем уже был список дисков от предыдущего исполнения командного файла, то он удвоится. Команда copy nul tstdsk.txt для существующего файла установит нулевой размер данных, т.е. сделает его пустым.

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

    copy nul tstdsk.txt
    for %%i in (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z) DO (
    if exist %%i:\ echo Disk %%i: exist >> tstdsk.lst
    )

    Для обработки файлов определенного типа, например любых с расширением .tmp используется маска — *.tmp . Так, для удаления всех файлов *.tmp из каталога C:\TEMP можно воспользоваться командой ERASE (или DEL )

    ERASE C:\TEMP\*.TMP
    DEL /Q C:\TEMP\*.TMP

    В масках файлов и каталогов возможно использование частичных имен

    ERASE C:\TEMP\A*.TMP — удалить все файлы с расширением .TMP , имя которых начинается с символа «A»
    DIR *u*.* — выдать список всех файлов и подкаталогов текущего каталога, в имени которых содержится символ «u»
    DIR C:\*t.* — выдать список всех файлов и каталогов в корне диска C: , имя которых заканчивается символом «t»

    Задача — получить список всех каталогов с подкаталогами на логическом диске и записать результат в текстовый файл. Для рекурсивной обработки каталогов диска будем использовать команду FOR /R

    FOR /R [[диск:]путь] %переменная IN (набор) DO команда [параметры]

    Ключ /R означает выполнение команды для каталога [диск:]путь . Если в команде путь не задан, то обработка выполняется для текущего каталога.

    Простой пример удаления файлов с расширением .tmp из каталога C:\TEMP:

    FOR /R C:\temp\ %%i IN (*.tmp) DO del %%i

    При выполнении команды возможно использование подстановочных значений переменной цикла для получения имен дисков, папок, файлов и их характеристик. Полный список возможных значений в случае использования переменной с именем i

    i — из переменной %i удаляются обрамляющие кавычки («)
    %%

    fi — переменная %i расширяется до полного имени файла
    %%

    di — из переменной %i выделяется только имя диска
    %%

    pi — из переменной %i выделяется только путь к файлу
    %%

    ni — из переменной %i выделяется только имя файла
    %%

    xi — из переменной %i выделяется расширение имени файла
    %%

    si — полученный путь содержит только короткие имена
    %%

    ai — переменная %i принимает значение атрибутов файла
    %%

    ti — переменная %i принимает значение даты /времени файла
    %%

    zi — переменная %i принимает значение размера файла

    Возможно объединение нескольких операторов :

    dpi — переменная %i заменяется только на имя диска и путь
    %%

    nxi — переменная %i заменяется только на имя файла и его расширение
    %%

    fsIi — переменная %i заменяется только на полный путь с краткими именами
    %%

    ftzai — переменная %I заменяется на строку, выдаваемую командой DIR

    Значение переменной %%pi внутри цикла команды FOR /R будет последовательно принимать значения путей папок, начиная с заданного набора [диск:]путь .

    Так же, как и в предыдущем примере, желательно обнулить файл с результатами возможного предыдущего запуска данного командного файла:

    REM Обнулить / создать файл для хранения списка каталогов C:\dirlist.txt
    copy nul C:\dirlist.txt
    REM Занесем первой строкой в пустой файл что-то вроде заголовка списка
    Echo *** Список папок на диске C: *** >> C:\dirlist.txt
    REM Сделать текущим каталогом корневой каталог диска C:
    cd c:\
    REM Выполнить для корневого каталога и всех вложенных каталогов, команду ECHO с выдачей значения переменной %%

    pi
    for /R %%i in (C) DO (
    ECHO Папка «%%

    В результате выполнения этого командного файла в корне диска C: будет создан файл dirlist.txt, содержащий список каталогов диска.

    Если в цикле команды FOR /R используются подстановочные значения переменной %%I, то в качестве набора (in) не стоит использовать символ точки.

    Мастер Йода рекомендует:  Майский рейтинг языков программирования TIOBE популярность Java и C стремительно падает

    Задача — найти на диске файлы с расширением .log и скопировать их в каталог на другом логическом диске — D:\MUSOR

    Желательно проверить наличие каталога D:\MUSOR и при необходимости, создать его командой md , а также удалить из него все файлы, если они существуют, командой del . Затем выполнить переход в корневой каталог диска C: и выполнить в цикле команды FOR поиск файлов по маске *.log во всех подкаталогах.

    REM подготовить каталог D:\MUSOR
    if not exist D:\MUSOR md D:\MUSOR
    REM удалить без подтверждения ( /Q) все файлы из каталога
    del /Q D:\MUSOR\*.*
    REM перейти в корень диска C:
    cd c:\
    REM Выполнить проверку наличия файлов с расширением *.log и скопировать их в
    REM D:\MUSOR
    for /R %%i in (c) DO (
    if exist «%%


    Практика использования FOR /R показала, что не стоит использовать в качестве набора для обработки символ «точка» ( конструкция in (.) ), поскольку при использовании подстановочных значений, можно получить возврат из текущего каталога на уровень выше. В данном примере в качестве набора in используется любой не служебный символ. Команду копирования ( copy ) можно заменить на команду перемещения файлов (MOVE), что приведет к удалению файлов источников после копирования в каталог D:\MUSOR.

    Пример с копированием файлов с расширением .log рассмотренный выше имеет некоторые существенные недостатки — не обрабатываются скрытые файлы и папки, и в конечном каталоге, куда копируются файлы ( D:\MUSOR ) не создаются подкаталоги с теми же именами, которые принадлежат путям исходных копируемых файлов. Для устранения этих недостатком можно использовать немного другой сценарий :

    @echo off
    REM подготовить каталог D:\MUSOR — удалить его и его подкаталоги командой RD
    RD /S /Q D:\MUSOR
    REM Создадим каталог заново
    MD D:\MUSOR
    REM Задаем начальную папку для обработки в команде FOR — C:\
    for /R C:\ %%i in (C) DO (
    xcopy «%%

    Для копирования используется команда xcopy с ключами:

    /H — копировать скрытые файлы.
    /R — разрешение на замену файлов с атрибутом «Только чтение»
    /Q — не отображать имена копируемых файлов
    /Y — разрешать перезаписывать существующие файлы.

    Подсказку по использованию команды XCOPY можно получить при вводе:

    help xcopy
    xcopy /?

    При обработке строки xcopy «%%

    pi*.*» /H /R /Q /Y в цикле FOR, в качестве источника копирования будет выбираться C:\текущий путь\*.log а в качестве приемника — D:\MUSOR\текущий путь\имя копируемого файла

    Похожий подход можно использовать для обнаружения и копирования исполняемых файлов (*.exe) из каталога временных файлов, задаваемого переменной TEMP. Бывает полезно для поиска вредоносных программ.

    rem @echo off
    REM подготовить каталог D:\MUSOR — удалить командой RD
    RD /S /Q D:\MUSOR
    REM Создадим каталог заново
    MD D:\MUSOR
    REM Задаем начальную папку для обработки (%TEMP%) и выполняем FOR
    for /R «%TEMP%» %%i in (C) DO (
    xcopy «%%

    При работе с содержимым каталогов удобно использовать команды запоминания текущего каталога и перехода в новый PUSHD и команды восстановления ранее запомненного текущего каталога POPD

    PUSHD «%TEMP%»
    Echo Работаем в каталоге временных файлов
    REM новый каталог стал текущим и можно использовать относительные пути
    REM Выдать список exe-файлов текущего каталога (%TEMP%) командой DIR
    DIR *.exe
    REM Восстановить путь, запомненный командой PUSHD
    POPD
    )
    Echo Вернулись в исходный каталог

    Работа с графическими приложениями Windows.

    Допустим, вам нужно из одного и того же командного файла запустить notepad.exe и cmd.exe. Если просто вставить строки
    notepad.exe
    cmd.exe
    то после запуска notepad.exe выполнение командного файла приостановится и пока не будет завершен notepad, cmd.exe не запустится. Самый простой способ обойти эту проблему — использовать стандартную команду Windows start . Полную справку по использованию можно получить по:
    start /?
    Попробуйте создать командный файл следующего содержания:

    start /MAX notepad.exe
    start «This is CMD.EXE» /MIN cmd.exe
    net send %COMPUTERNAME% NOTEPAD and CMD running.

    После выполнения этого командного файла вы увидите стартовавшие, в развернутом окне (ключ /MAX) блокнот, в свернутом окне (ключ /MIN) командный процессор CMD.EXE и окно с сообщением net.exe. Стандартный заголовок окна cmd.exe заменен на текст «This is CMD.EXE». Обратите внимание на то что заголовок окна можно опускать, но особенность обработки входных параметров командой start может привести к неожиданным результатам при попытке запуска программы, имя или путь которой содержит пробел(ы). Например при попытке выполнить следующую команду:
    start «C:\Program Files\FAR\FAR.EXE»
    Из-за наличия пробела в пути к исполняемому файлу, строка для запуска FAR.EXE должна быть заключена в двойные кавычки, однако формат входных параметров для start предполагает наличие заголовка окна, также заключаемого в двойные кавычки, в результате чего «C:\Program Files\FAR\FAR.EXE» интерпретируется не как исполняемая программа, а как заголовок окна. Для того, чтобы подобного не случилось нужно использовать любой, пусть даже пустой, заголовок:
    start «» «C:\Program Files\FAR\FAR.EXE»

    Если вам все же потребуется расширенное управление окнами приложений, придется воспользоваться сторонним программным обеспечением, например, широко известная утилита cmdow.exe

    Текущую версию программы можно скачать на странице разработчика CMDOW

    Из-за специфического поведения эта утилита большинством антивирусов определяется как вирус, поэтому для нормальной работы нужно занести ее в исключения антивируса. И по этой же причине, архив программы закрыт паролем novirus

    Cmdow.exe — крошечная утилита, работающая во всех версиях Windows и не требующая установки. Позволяет получить список окон, перемещать, изменять размеры, переименовывать, сворачивать/разворачивать, активировать/деактивировать, закрывать, скрывать окна приложений и многое другое. Справку можно получить по команде:
    cmdow /?
    Используется около 30 ключей. Описание на русском языке найдете здесь. Некоторые примеры:

    Получение информации об окнах:

    cmdow.exe или cmdow.exe > wins.txt — выдать информацию обо всех окнах на экран или в файл wins.txt
    cmdow /T — выдать информацию об окнах, отображаемых на панели задач рабочего стола.
    Информация содержит колонки:

    Handle — дескриптор окна — шестнадцатеричное число, связанное с данным окном.
    Lev — уровень окна. Приложение может быть многооконным с несколькими уровнями окон.
    Pid — идентификатор процесса, породившего окно.
    -Window status- — состояние окна (видимое — Vis, скрытое — Hid, активное — Act, свернутое — Min и т.п.
    Image — программа вызвавшая окно.
    Caption — название окна

    Манипулировать окнами можно используя название окна, или его дескриптор. Если название окна содержит пробелы, то оно заключается в двойные кавычки. Если имеются русские буквы, то должна использоваться DOS-кодировка. Символ @ используется для указания текущего окна. Иногда проще использовать дескриптор окна, а не его название. Полезным может быть и использование команды поиска по строке find.exe, выполняемой в цепочке с cmdow:
    cmdow.exe | find.exe /I «hid» > wins.txt — в файл wins.txt попадут только строки содержащие шаблон «hid» и мы получим список скрытых окон.
    cmdow.exe | find.exe /I «MyIE» > wins.txt — список окон приложения MyIE

    Манипулирование окнами.
    Если вы хотите, чтобы ваш командный файл выполнялся скрытно, добавьте в него строку:
    cmdow @ /HID — скрыть текущее окно
    Ниже командный файл с комментариями, демонстрирующий возможности работы cmdow:

    @ECHO OFF
    REM Свернуть все окна — /MA
    cmdow /MA
    REM запустить cmd.exe с заголовком окна MyCMD
    start «MyCMD» cmd.exe
    REM ждать 5 секунд
    call :wait5s
    REM
    :M1
    REM Скрыть окно MyCMD
    cmdow MyCMD /hid
    call :wait5s
    REM Сделать видимым
    cmdow MyCMD /vis
    call :wait5s
    REM Переместить в верхний левый угол экрана и развернуть окно
    cmdow MyCMD /MOV 0 0
    cmdow Mycmd /max
    call :wait5s
    REM Изменить размер на 320 х 240 и переместить вправо на 320 точек
    cmdow MyCMD /MOV 320 0 /SIZ 320 240
    call :wait5s
    REM Переместить окно в точку с координатами 320 x 240 и изменить размер на 350×50
    cmdow MYCMD /MOV 320 240 /SIZ 350 50
    call :wait5s
    REM Восстановить окно
    cmdow MYCMD /RES
    call :wait5s
    REM Восстановить и сделать активным окно этого командного файла
    cmdow @ /RES /ACT
    ECHO Для завершения нажмите CTRL-C (CTRL-Break)
    call :wait5s
    call :wait5s
    REM Зацикливание — переход к метке :M1
    GOTO M1
    REM Подпрограмма задержки на 5секунд
    :wait5s
    @ping -n 5 localhost > nul

    Пример командного файла, закрывающего окна Проводника Интернет (IEXPLORE.EXE):

    @echo off
    :M1
    for /f «tokens=1-2,8» %%a in (‘cmdow’) do (
    if /i «%%c»==»IEXPLORE» if «%%b»==»1» cmdow %%a /END > nul
    )
    goto M1

    Работает это следующим образом. Из выходных данных CMDOW берется первое, второе и 8-е поля. Первое — дескриптор окна (Handle), второе — уровень (Lev), третье — имя программы (Image). В цикле выполняется cmdow и если в ее выводе имеется строка, где имя программы IEXPLORE и уровень окна 1 выполняется cmdow /END . Пока этот командный файл выполняется, запустить «Обозреватель интернета» не получится. А если в начало командного файла добавить «cmdow @ /hid» — то будет скрыто и его окно.

    Перекодировка текстовых файлов.

    В рассматриваемом примере нужно преобразовать исходный текстовый файл в DOS-кодировке в новый текстовый файл в Windows-кодировке. В качестве механизма перекодировки используется смена кодовой страницы командой CHCP и построчная выдача содержимого исходного файла командой ECHO с перенаправлением вывода в новый файл. Для DOS-кодировки используется кодовая страница 866, для Windows-кодировки — 1251. В примере исходный файл называется 866.txt, а файл с перекодированными данными — 1251.txt

    @echo off
    chcp 866 >nul
    for /f «tokens=*» %%i in (866.txt) do call:to1251 «%%i»
    exit
    :to1251
    chcp 1251 >nul
    echo %

    1 >>1251.txt
    chcp 866 >nul
    exit /b

    Аналогичный подход можно использовать и для преобразования текста из Windows — кодировки ( кодовая страница 1251) в DOS-кодировку (кодовая страница 866). Естественно, такая перекодировка не может учитывать пустые строки и форматирование текста с помощью спецсимволов, поскольку команда ECHO не позволяет работать с такими форматами данных.

    Своеобразным современным стандартом программы для перекодировки файлов считается, портированная из Unix утилита iconv (в составе библиотеки libiconv).

    iconv [-c] [-s] [-f encoding] [-t encoding] [inputfile . ]

    Входная кодировка задаётся ключом -f , а выходная — ключом -t . Если ключи не заданы, используется кодировка для языка системы по умолчанию. Все входные файлы читаются по очереди, если не задан параметр входного файла, то используется стандартный ввод, а конвертируемый текст выводится на стандартный вывод.

    Когда задана опция -c , символы, которые не могут быть преобразованы просто выбрасываются. В противном случае при появлении подобной ошибки программа аварийно завершается.

    Когда задана опция -s , сообщения об ошибках не выводятся.

    Ключ -l позволяет получить список доступных кодировок. Утилита позволяет перекодировать текст, практически, из любой кодировки в любую.

    Скачать последнюю версию iconv для Windows (в составе пакета libiconv) можно здесь

    Часто встречающиеся ошибки при написании командных файлов.

  • Командный файл вручную выполняется успешно, но запущенный с помощью планировщика не работает.
  • Обычно, это вызвано тем, что вы не учитываете тот факт, что на момент выполнения вашего командного файла переменные среды могут быть совсем другими, чем на момент его написания и запуска из командной строки. Например, в командном файле используется запуск приложения myprog.exe, находящегося в каталоге SCRIPTS на диске D: . Если в командном файле используется имя исполняемого модуля без полного пути

    MYPROG.EXE
    и если каталог D:\SCRIPTS не прописан в путях поиска (переменная PATH ) то модуль MYPROG.EXE может быть найден и выполнен только если текущим каталогом является D:\SCRIPTS. Но если вы укажете полный путь к myprog.exe:
    D:\SCRIPTS\myprog.exe
    то программа будет найдена и выполнена в любом случае.
    Кроме того, нередко программа, указанная в командном файле использует для поиска своих компонент (dll, ini и т.п. ) собственный каталог. Но на момент ее выполнения текущим каталогом может быть любой (чаще всего — системный каталог Windows). Естественно, компоненты не находятся и программа не выполняется. Для устранения проблемы добавьте в командный файл команды, обеспечивающие переход в нужный каталог. Например, программа myprog.exe должна выполняться в каталоге D:\SCRIPTS:

    Rem Сменим текущий диск
    D:
    Rem перейдем в каталог SCRIPTS
    CD D:\SCRIPTS
    myprog.exe

    Также для переходов по каталогам можно воспользоваться командами pushd и popd, описание и примеры использования которых имеются в разделе сайта со списком команд Windows.

    Неправильно отображаются русские имена файлов, служб и т.п.

    Причина в том, что при создании командных файлов вы использовали текстовый редактор, в котором русские символы представлены не в DOS-кодировке. Если в приведенном выше примере перезапуска службы «DNS-клиент» вы используете неверную кодировку, то русская часть имени службы не будет опознана из-за неверной кодировки и будет выдано сообщение, что указанная служба не установлена. Чтобы избежать проблем с русскими символами в командных файлах, используйте редактор с поддержкой DOS-кодировки, например, встроенный редактор файлового менеджера Far Manager. Переключение между кодировками в редакторе осуществляется нажатием F8 . С помощью FAR можно легко осуществлять перекодировку, скопировав (вырезав) текст в буфер обмена, затем нажав F8 и вставив текст из буфера.

    Командный файл выполняется на одном компьютере успешно, но на другом — не работает.

    Обычно это вызвано применением в командных файлах абсолютных значений для дисков, файлов и каталогов вместо переменных среды окружения. Вместо C:\WINDOWS правильнее использовать %SYSTEMROOT%, потому, что на другом компьютере система может быть установлена в другой каталог или на другой диск. Старайтесь вместо имени командного файла использовать переменную %0 и ее подстановочные варианты (%

    d0 — диск с которого запущен сценарий, %

    dp0 — полный путь и т.д.).

    Строки с переменными, принимающими значения имен файлов и каталогов лучше заключать в кавычки. Командная строка

    не выдаст вам содержимого каталога C:\Program Files , поскольку из-за наличия пробела будет интерпретирована как

    Командная строка
    DIR «%ProgramFiles%»
    выполнится верно.

    Старайтесь использовать команды Setlocal и Endlocal, чтобы не оставлять мусор из переменных, созданных или модифицированных командным файлом.

    Использование командных файлов в сценариях регистрации пользователей .

    Командные файлы удобно использовать для выполнения каких-либо действий при регистрации пользователя в домене. Делается это с помощью вкладки Profile свойств пользователя домена.

    Сами командные файлы должны находиться в сетевой папке Netlogon (WINDOWS\SYSVOL\ DOMAIN\SCRIPTS) контроллера домена.

    Однако наиболее распространенной областью применения командных файлов является их использование в сценариях групповых политик, позволяющих централизованно выполнять административные действия по управлению большим количеством компьютеров и пользователей в домене, что значительно облегчает работу системных администраторов крупных компьютерных сетей.

    Дополнительные материалы по командной строке Windows:

    Раздел со списком команд CMD Windows. Имена большинства команд представляют собой ссылку на страницы с их описанием и примерами.

    Настройка окна командной строки Windows. Малоизвестные возможности по изменению свойств консоли Windows.

    Работа с сетью в командной строке Windows — Описание и примеры использования утилит командной строки для работы с сетью.

    Запуск командных файлов от имени администратора без запроса UAC — использование планировщика заданий для запуска приложений от имени Администратора без запроса системы контроля учетных записей UAC.

    Если вы желаете поделиться ссылкой на эту страницу в своей социальной сети, пользуйтесь кнопкой «Поделиться»

    7 лучших программ для поиска файлов-дубликатов

    Чистим диск, забившийся одинаковыми изображениями, документами и музыкой.

    Наверняка у любого из нас на диске со временем скапливаются файлы-дубликаты. Файлы в «Загрузках», которые вы скачали несколько раз, одинаковые фотографии и музыкальные композиции, лежащие в таких недрах, что до них просто не доходят руки. Избавиться от всего этого можно и вручную, но куда быстрее за вас сработают специальные утилиты, ищущие одинаковые файлы.

    CCleaner

    Очень популярный «чистильщик», который, наверное, установлен у каждого. Да, он может не только искать системный мусор и очищать историю и cookies браузеров, но и убирать дубликаты файлов.

    Платформы: Windows, Mac.

    Цена: бесплатно, 24,95 доллара за расширенную версию.

    dupeGuru

    Программа ищет файлы как с одинаковыми или похожими названиями, так и с идентичным содержимым. Хорошо работает с музыкой и может отыскивать одинаковые музыкальные файлы, даже если у них разные теги. Кроме того, dupeGuru умеет сравнивать изображения, чтобы найти не только одинаковые, но и просто похожие фотографии.

    Разрабатывается для Mac и Linux. Версия для Windows больше не поддерживается разработчиком, но её можно загрузить с официального сайта — она полностью работоспособна.

    Платформы: Windows, Mac, Linux.

    SearchMyFiles

    Продвинутое приложение для поиска файлов, которое, помимо прочего, может удалять дубликаты. SearchMyFiles обладает гибкими фильтрами, так что вы можете настроить поисковую выдачу так, как вам угодно.

    Gemini 2

    Популярное приложение для Mac, которое ищет одинаковые или похожие файлы и показывает, в чём разница между ними. Копии в «Фото», в фонотеке iTunes — мимо Gemini 2 не пройдёт ничего. Разработчиками заявлен умный механизм поиска дубликатов, который запоминает, какие файлы вы оставляете, а что решаете удалить.

    Цена: 19,95 доллара.

    AllDup

    Хотя AllDup бесплатна, она умеет немало. Ищет, удаляет, копирует и перемещает дубликаты файлов, в том числе одинаковые аудиозаписи с разными тегами. Присутствует гибкая настройка поиска. С помощью встроенного просмотрщика можно изучить файлы и выбрать, что именно удалять.

    Duplicate File Finder

    Duplicate File Finder быстро и эффективно отыскивает файлы-копии. Предоставляет интересную возможность поиска дубликатов не только на жёстком диске, но и в локальной сети. Может работать с изображениями и музыкой, сравнивая как теги, так и содержимое. Функция предпросмотра поможет разобраться, что действительно удалить, а что оставить. К сожалению, в бесплатной версии довольно много опций недоступно.

    Цена: бесплатно, 29,95 доллара за расширенную версию.

    Total Commander

    Универсальный файловый менеджер, который может сделать с вашими файлами что угодно. В том числе и найти файлы-дубликаты. Включить опцию поиска копий можно на вкладке с параметрами поиска, там же, где указываются другие атрибуты искомых файлов.

    Цена: 43,9 доллара.

    DupeGuru выглядит наиболее привлекательным вариантом. Он бесплатен, при этом предлагает все необходимые функции для избавления вашего диска от скопившегося барахла. Огорчает лишь тот факт, что разработка версии для Windows остановлена. Пользователям Windows, не желающим платить за коммерческие альтернативы, больше подойдёт AllDup. А CCleaner и Total Commander — это более универсальные и распространённые решения, которые, наверное, уже установлены у каждого.

    проверка на возможность открытия файла

    20.10.2009, 10:56

    Нужно, чтобы отобразилось окно с запросом о сохранении этого файла БЕЗ открытия самого файла
    Всем привет! У меня вопрос: Я использую следующую строку window.open(filepath.xls) для передачи.

    Проверка файла на возможность считать текст
    Как можно определить текстовый документ ли открыт? То есть возможно ли с текущего открытого файла.

    Ошибка открытия файла из-за длинного полного имени файла
    Windows XP и 7, Visual Studio 10 и 12. В программе на C# при открытии файла docdoc =.

    Проверка на возможность выполнения действия
    Всем добрый день. Мне нужно проверить, не вызовет ли определённое действие (допустим вызов некой.

    Проверка открытия файла
    Есть такой говнокод. Нужно проверить наличие файла и выдать ошибку откртия. #include «head.h».

    20.10.2009, 11:56 2

    Решение

    любые участки кода, в которых могут возникнуть ошибки времени выполнения нужно помещать в блоки try . catch . finally. В данной конкретной ситуации можно написать так:

    20.10.2009, 11:56

    Проверка открытия файла вывода
    #include #include #include #include using namespace.

    Программа открытия файла, редактирования файла и сохранения файла
    Здравствуйте! Нужна ваша помощь! Есть программа, но мне не удается реализовать ее код.

    [ sfc /scannow ] Восстановление системных файлов Windows.

    Немногие пользователи ПК знают, что с помощью встроенного средства sfc /scannow можно выполнить восстановление системных файлов Windows. Данный материал поможет таким пользователя незнайкам убрать этот пробел в своих знаниях.

    System File Checker [sfc /scannow]

    SFC ( System File Checker — с англ. Проверка системных файлов) — эта утилита от Microsoft, которая позволяет проверить системные файлы Windows на предмет изменений или повреждений и восстановить их при необходимости. Данная утилита использует регистрацию уведомлений об изменении файлов при входе в систему. При выполнении проверки изменённые системные файлы восстанавливаются до их изначальных версий. Начальные версии таких защищаемых файлов хранятся по пути %WinDir%\System32\dllcache (%WinDir% — это папка Windows на системном разделе). Если в данной библиотеке будет отсутствовать необходимый файл либо кэш DLL будет повреждён, то будет предложено вставить установочный диск Windows либо указать путь до файла.

    Проверка и восстановление файлов Windows

    Для запуска средства восстановления системных файлов Windows необходимо обладать правами администратора. Запускается она с помощью команды sfc /scannow в командной строке Windows. Соответственно делаем следующее:

    1. Запустите командную строку Windows от имени администратора. Как это сделать читайте тут.
    2. Наберите команду sfc /scannow и нажмите Enter . Начнётся проверка системы.

    После окончания сканирования может быть выдан один из 3-х возможных результатов:

    1. Защита ресурсов Windows не обнаружила нарушений целостности.
    2. Защита ресурсов Windows обнаружила повреждённые файлы и успешно их восстановила. Подробные сведения см. в файле CBS.Log, который находится по следующему пути: %WinDir%\logs\CBS\CBS.log
    3. Защита ресурсов Windows обнаружила повреждённые файлы, но не может восстановить некоторые из них.

    С первыми двумя результатами все понятно, но как быть если, появилось третье сообщение? Об этом далее в статье.

    Возможные проблемы при работе с утилитой SFC

    При проверке и восстановлении системных файлов Windows при помощи программы Защита ресурсов Windows могут возникнуть некоторые проблемы. Они могут быть связанны как с самим запуском утилиты SFC так и с конечным результатом после запуска команды sfc /scannow (3-ий вариант результата).

    sfc /scannow не запускается вообще

    Что делать, если sfc scannow не запускается либо работает некорректно.

    1. В первую очередь нужно проверить включена ли служба «Установщик модулей Windows«. Если нет, то её нужно включить, а тип запуска установить на «Вручную«. Если не помогло, то перейдите к следующему способу.
    2. Для исправления проблем с SFC можно воспользоваться встроенной в Windows Системой обслуживания образов развёртывания и управления ими — DISM (Deployment Image Servicing and Management tool).

    в Windows 7 и ранних версиях данная система отсутствует.

    Запускается данное средство через командную строку. Для этого надо ввести и выполнить следующую команду: DISM /Online /Cleanup-Image /RestoreHealth Обязательно дождитесь окончания выполнения команды, а после перезагрузите ПК. После перезапустите восстановление и проблем не будет.

    sfc scannow не может восстановить некоторые файлы

    Если Защита ресурсов Windows обнаружила повреждённые файлы, но не смогла восстановить некоторые из них, то можно применить следующие решения для устранения проблемы:

    • Запустите командную строку и выполните в ней следующую команду: findstr /c:»[SR]» %windir%\Logs\CBS\CBS.log >»%userprofile%\Desktop\sfc.txt» Данная команда создаст на рабочем столе текстовый файл sfc.txt, в котором будут перечисляться повреждённые, не восстановленные файлы. Зная какие это файлы, вы сможете сами их скопировать с другого компьютера с такой же версией Windows.
    • Вставьте в привод установочный диск с той же версией Windows и возможно программа сама с него потянет необходимые файлы, которые отсутствуют в %WinDir%\System32\dllcache.
    • Запустите систему в безопасном режиме и уже там выполните команду sfc /scannow.

    Дополнительные параметры команды SFC

    Команда SFC имеет не только параметр scannow . Полный список параметров выглядит следующим образом:
    SFC [/SCANNOW] [/VERIFYONLY] [/SCANFILE=путь к файлу] [/VERIFYFILE=путь к файлу] [/OFFWINDIR=папка с windows] [/OFFBOOTDIR=удаленная папка загрузки]

    • sfc /scannow. С данным параметром утилита проверяет систему на наличие повреждённых системных файлов и сразу пытается их восстановить.
    • sfc /verifyonly. Этот параметр позволяет просто проверить систему без восстановления. Если вы саморучно модифицировали какие либо системные файлы, например значки на папках, в проводнике, то при параметре scannow, все они будут восстановлены. А verifyonly поможет избежать этого. А найденные простой проверкой файлы можно восстановить отдельно.
    • sfc /scanfile=путь к файлу. Проверяет и исправляет только один файл, путь к которому будет указан после знака =.
    • sfc /verifyfile=путь к файлу. Просто проверяет файл, без исправления.
    • sfc /offwindir=папка с windows.
    • sfc /offbootdir=удаленная папка загрузки.

    Команда с параметрами sfc /scannow /OFFBOOTDIR=E:\ /OFFWINDIR=E:\windows позволит выполнить проверку системных файлов жесткого диска другого компьютера, который подключен к вашей системе. Букву диска необходимо указывать свою (в примере просто указана E:), которая определяется автоматически при подключении жесткого диска. Это может понадобиться, например, если другой компьютер не может запускаться из-за повреждённых системных файлов.

    Проверка жесткого диска на ошибки

    Очень часто в процессе использования вашего компьютера появляются «тормоза» зависания, притормаживания, в этом случае необходимо сделать проверку жесткого диска на ошибки, благо в Windows имеется много возможностей сделать эту проверку. Прочитайте внимательно данную статью и следуйте рекомендациями.

    Если в процессе работы на компьютере при выполнении каких-либо манипуляций, ПК начинает притормаживать или зависать, это может означать, что на винчестере имеются какие-то ошибки. В данном случае необходимо проверить жесткий диск на наличие ошибок и попытаться их исправить. Выполнить это довольно просто.

    Стоит отметить, что нижеописанные манипуляции не помогут решить все проблемы с притормаживанием компьютера. Однако, для тех случаев, когда «тормоза» вызывают именно ошибки на винчестере эти действия вполне подойдут. Кроме того, исправление ошибок и поддержание винчестера в нормальном состоянии позволит продлить срок эксплуатации HDD, поэтому эту процедуру желательно регулярно выполнять.

    Физические ошибки жесткого диска

    Физические ошибки связаны с повреждениями поверхности диска. Такое повреждение может случиться из-за удара или падения, а может даже из-за брака на производстве. В таком случае на поверхности диска образуются битые сектора, которые не могут содержать информации. Если в таких секторах были размещены системные файлы, то операционная система будет давать сбой.

    Логические ошибки жесткого диска

    Логические проблемы связаны с повреждением файловой системы. На жестком диске размещена файловая система, которая управляет расположением файлов, доступом к файлам. Если повреждена файловая система, то также компьютер может перегружаться или может появиться синий экран.

    Из-за чего могут возникнуть ошибки на жестком диске?

    Ошибки на винчестере могут возникать по разным причинам. К примеру, при работе на компьютере внезапно пропало электричество, и при этом были открыты какие-то файлы или программы. Кроме того, некоторые пользователи выключают компьютер путем нажатия на кнопки питания, а не через «Завершение работы». Такие действия приравниваются к внезапному отключению электроэнергии. В этом случае компьютер неправильно завершает свою работу. Помимо этого, есть еще большое количество причин появления ошибок на винчестере.

    Проверка жесткого диска на наличие ошибок в Windows

    Проверить винчестер на ошибки можно несколькими способами. Выполнить это можно с помощью интегрированной утилиты командной строки CHKDSK или сторонних программ, а также графический инструмент. Для начинающих пользователей отлично подойдет последний вариант, так как он самый простой из всех. Проверка таким способом одинаково проходит на «семерке» и «восьмерке» Windows.

    Данная процедура может отнять довольно много времени, в зависимости от объема винчестера и количества выявленных ошибок. Работать за компьютером в этот момент не рекомендуется. Если выполняется проверка системного диска, на котором установлена операционная система, то проводить ее нужно после перезагрузки компьютера.

    1. Первым делом необходимо перейти в «Мой компьютер». Если такого ярлыка на рабочем столе нет, тогда сделать это можно через меню «Пуск». При необходимости расположить этот ярлык на рабочем столе можно поискать в интернете, как это сделать.
    2. Затем необходимо выбрать диск, который нужно проверить и щелкнуть по нему ПКМ. В выпавшем меню необходимо выбрать «Свойства».
    3. Перейдя в свойства диска, нужно зайти в раздел «Сервис», где должна находиться клавиша «Выполнить проверку». Ее необходимо нажать. На экране появится окно с разделом «Параметры проверки диска». В этом окне необходимо поставить галочки возле пунктов «Автоматически исправлять системные ошибки» и «Проверять и восстанавливать поврежденные сектора». Это позволить выявлять файловые и физические ошибки на винчестере. После этого требуется нажать на кнопку «Запуск».
    4. Затем начнется проверка винчестера, в ходе которой присутствие пользователя не нужно, поэтому можно заняться своими делами. По завершении проверки на экране появится окно, в котором будет указано, что проверка выполнена успешно, а также будет отображаться количество ошибок, выявленных в ходе сканирования, если такие будут на винчестере.

    Вот, в принципе, и все. Способ довольно простой, поэтому воспользоваться им сможет любой начинающий пользователь. При необходимости можно воспользоваться другими методами проверки, однако, они требуют имение некоего опыта работы за компьютером. Новичкам также можно попробовать использовать сторонние программы для проверки винчестера, которые способы автоматически решить все ошибки на жестком диске.

    Выполнить проверку жесткого диска через утилиту chkdsk

    Как удостовериться, что Ваш жесткий диск не содержит ошибок и плохих секторов? В этом поможет служебная программа chkdsk: мы покажем, как запустить chkdsk в Windows и основы работы с ней.

    chkdsk — это встроенная в Windows утилита для выявления ошибок на Вашем жестком диске, если говорить кратко, то — проверка диска (вытекающее отсюда ошибки, bad-секторы, и прочие «шероховатости»).

    Нажимаем Win + R -> cmd -> OK
    Вводим команду
    chkdsk с: /f
    В данном случае C: — это буква проверяемого диска, а параметр /f задает исправление ошибок. Утилита может выдать предупреждение «Невозможно выполнить команду Chkdsk, так как указанный том используется другим процессом…» Просто ответьте утвердительно, нажав Y. Проверка будет произведена при последующей перезагрузке компьютера.

    Команды консоли CHKDSK :

    Команда: CHKDSK [том: [/F] [/V] [/R] [/X] [/C] [/L[:размер]] выполняет проверку указанного диска при помощи программы Check Disk, при вызове без аргументов осуществляется проверка текущего диска. В консоль вбивать без скобок. Пример: C: /F /R

    • том — определяет метку тома проверяемого диска, точку подключения либо имя диска с двоеточием (например, C:);
    • путь, имя файла — имя файла или группы файлов для проверки на фрагментацию. Используется только в файловой системе FAT/FAT32;
    • /F — выполнение проверки на наличие ошибок и их автоматическое исправление;
    • /V — в процессе проверки диска выводить полные пути и имена хранящихся на диске файлов. Для дисков, содержащих разделы NTFS, также выводятся сообщения об очистке;
    • /R — выполнить поиск поврежденных секторов и восстановить их содержимое. Требует обязательного использования ключа /F;
    • /X — в случае необходимости выполнить отключение тома перед его проверкой. После отключения все текущие дескрипторы для данного тома будут недействительны. Требует обязательного использования ключа /F;
    • /I — не проводить строгую проверку индексных элементов. Используется только в файловой системе NTFS;
    • /C — не проводить проверку циклов внутри структуры папок. Используется только в файловой системе NTFS.
    • /L:размер — в ходе проверки изменить размер файла журнала до указанной величины (в килобайтах). Если значение не указано, выводится текущий размер файла. Используется только в файловой системе NTFS;

    Собственно, все. Теперь Вы имеете представление о том, что такое chkdsk и зачем она нужна.

    Программы для диагностики жесткого диска

    Существуют специальные утилиты для диагностики жестких и современных твердотельных дисков. Часть из приложений позволяют своевременно обнаружить повреждения на поверхности и другие ошибки, некоторые из программ способны даже исправлять проблемы в работе накопителей.

    1. DiskCheckup— Неплохой инструмент для диагностики носителей. «Изюминка» приложения – это возможность не просто сгенерировать отчет со S.M.A.R.T.-параметрами диска, но и сверить их с показателями, полученными при более раннем анализе. При выявлении проблем в работе накопителя программа сразу же отправляет письмо на заранее указанный адрес электронной почты.
    2. Crystal Disk Mark— Утилита позволяет узнать реальную скорость чтения и записи информации на диск, при этом используется четыре различных метода тестирования. Один из них — алгоритм последовательной записи «Seq» — применяют производители накопителей, поэтому пользователь может сравнить полученные цифры с заявленными разработчиком устройства показателями.
    3. CrystalDiskInfo— Программа для диагностики винчестера компьютера с русской версией меню от создателя популярного тестировщика скорости Crystal Disk Mark. Как и DiskCheckup, утилита может вести историю S.M.A.R.T.-показателей, с той лишь разницей, что у нее есть больше инструментов для визуализации. Благодаря такой функции можно графически построить историю «здоровья» накопителя и своевременно выявить ухудшение состояния диска.
    4. HDDScan— Утилита для просмотра информации об устройствах хранения данных и тестирования дисков по разным алгоритмам – S.M.A.R.T. и режим линейной обработки. Есть функция отображения температуры накопителя, а также возможность генерирования отчета, содержащего информацию о «медленных» секторах.
    5. HDD Regenerator — Если вкратце охарактеризовать эту программу, то ее можно назвать «современным вариантом MHDD». Утилита использует собственные методы реанимации битых участков, при этом она не только запрещает доступ к проблемной области поверхности, но и пробует восстановить ее специальной комбинаций сигналов высокого и низкого уровня. Данный алгоритм более эффективен, чем способ низкоуровневого форматирования. Приложение поддерживает все популярные интерфейсы подключения накопителей.
    6. Western Digital Data Lifeguard Diagnostic — Основные возможности для анализа этой программы сопоставимы с Seagate SeaTools, однако приложение от компании Western Digital мы рекомендуем более продвинутым пользователям. Причина – наличие функции безвозвратного глубокого форматирования накопителя, после которого нет возможности восстановить удаленные файлы. В меню она называется «WRITE ZEROS».
    7. MHDD — Программа-«ветеран», знакома всем пользователям «со стажем» со времен одноядерных процессоров. Инструментами приложения можно выполнить низкоуровневую проверку жесткого диска, выявить поврежденные области и переназначить их. Утилита также позволяет контролировать уровень шума винчестера и имеет функцию установки пароля на устройство хранения данных.Из-за отсутствия поддержки Windows Vista, 7 и новее эту утилиту чаще всего используют в виде загрузочного образа как портативный вариант диагностики HDD без запуска операционной системы.
    8. Seagate SeaTools — Фирменная утилита от известного производителя жестких дисков. Приложение позволяет определить состояние накопителя по S.M.A.R.T.-алгоритму. Правда, получить подробную информацию о каждом показателе нет возможности. По запросу пользователя с помощью Seagate SeaTools можно произвести три типа анализа – так называемый короткий selftest, экспресс-тест методом непродолжительного чтения последовательных массивов и полную диагностику последовательного чтения.

    Диагностика диска с программой Victoria HDD

    Victoria HDD — максимально простая, но очень мощная программа полной диагностики жёсткого диска. Приложение создавалось в качестве инструмента оценки производительности HDD, тестирования всех его параметров, устранения выявленных проблем, а также правильного и чистого форматирования HDD.

    Интерфейс программа Victoria очень простой, тем не менее, программа рассчитана на продвинутых пользователей, или хотя бы со средним левелом знаний и навыков. Программа гибкая, и её можно подстроить (сконфигурировать) под ваш уровень технической грамотности\подготовки. Это изменяет алгоритмы сканирования и вывода информации. Структура данных будет такая, какая вам больше подходит. Программа выдаёт все детали по вашему диску, который сканируется, от модели, общего размера до функций.

    Victoria также сканирует физическую поверхность блинов диска, то есть проводит тест с помощью считывающих головок. При обнаружении каких-то проблем и неисправностей, выдаёт предупреждение, помечает, где эта неисправность находится. Это могут быть плохие\повреждённые сектора. После выдаётся подробный отчёт. Пользователь может переназначить все повреждённые сектора, таким образом изолируя плохой блок, чтобы диском можно было продолжать пользоваться без опасения потери ваших данных. Программа является разработкой Казанского Сергея. Хоть и не было давно обновления, приложение до сих пор делает свою работу на очень высоком уровне эффективности.

    Главным преимуществом Victoria HDD является работа программы на низовом уровне, это сканирование поверхности диска, анализ его структуры через порты. В этом случае эффективность не может быть низкой, как у программ, которые используют виртуальные костыли. Но для полноценного использования программы пользователю понадобятся навыки повыше обычного пользователя. Можно сказать, что эта программа для профессионалов по восстановлению HDD.

    Я уверен что данная статья поможет вам предотвратить частых сбоев в жестком диски и устранить проблему с притормаживанием Windows, удачи!

    Добавить комментарий