Цитата a139st:
но ничего не произошло. »
|
Давайте проверим. Сам текстовый файл со списком не обязан находится в том же каталоге, что и "батник" (для пользования нескольких списков, разложенных по каталогам)
1. Текстовый файл в обычной кодировке ASCII (или 1251 или 866 - неважно, главное не UTF16..64)
2. Он не заблокирован текстовым редактором, батник запускается действительно в каталоге, где расположен 123, допустим каким-либо "коммандером". (Вы правильно сделали, назвав текстовый файл также, как и "батник", я забыл уточнить этот немаловажный момент, извиняюсь)
3. Если все условия соблюдены, то хорошо-бы сделать отладочный лог - укоротить список адресов до 2-3, убрать первую строку "
@Echo off", убрать перенаправления "
>nul" и особенно "
2>nul"
4. Запустить "батник" в консоли (cmd.exe) и все, что там окажется скопировать в текстовичок, который выложить сюда.
Пояснения по коду по блокам:
1. Разрешить новые возможности команд
2. Взять текущие время и дату в формате YYMMDD и HHMMSS - без разделителей, чтобы поместились в столбец из 8 символов (для вывода в CSV лучше сохранить и дату и время в другом формате - эксел при инпорте принудительно делает распознование типа данных, чем иногда портит все удовольствие от использования)
3. Начинаем в цикле построчный разбор уже имеющегося файла: выделяется первый столбец с адресом в %%A и все остальные столбцы со статистикой в %%B, обработка вынесена в отдельную процедуру ":Ping" для удобства и возможности в дальнейшем использовать какие-нить допобработки не прибегая к включению режима "отложенного раскрытия переменных" (setLocal EnableDelayedExpansion).
4. Процедура ":Ping" проверяет "адрес" (первый параметр) на совпадение со словами Date или Time (могут встретиться в любой строке файла) и выводит соответсвующую переменную до остальных столбцов (т.е. какбы вставляя новый столбец). В противном случае "адрес" является действительно адресом (или именем компа/сайта) - делаем тестовый "пинг", если ошибки нет (переменная %ErrorLevel%) - меняем значение "статуса" с "Faild" на "Ok". Выводим результат в том же порядке - "Адрес" текущий результат проверки, все предыдущие результаты проверки (вставляется столбец).
Весь вывод процедуры осуществляется во временный файл в текущем каталоге, с тем же именем, что и "батник", но расширением "tmp" ("%~n0.tmp")
5. По завершению цикла (который мог и не выполниться ниразу), удаляется файл "*.old" (предыдущий результат), *.txt (наш текстовик) переименовывается в "*.old", а временный файл переименовывается на место "текстовика".