Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 9

Модерирует : KLASS, IFkO

vu1tur (09-01-2011 11:53): лимит страниц, продолжение — http://forum.ru-board.com/topic.cgi?forum=62&topic=22143  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101

   

vu1tur



Moderator-Saaber
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Задачи на bat-файлах 9
(часть 1, часть 2, часть 3, часть 4, часть 5, часть 6, часть 7, часть 8)
Вопросы, задачи и их решения по работе с командными файлами, а также сопутствующие ссылки.

 
Важно: копируя батник через буфер обмена из форума не забывайте удалять пробелы в конце каждой строки, т.к. в некоторых случаях из-за этого программа будет работать неправильно!!!
 
Также для удаления концевых пробелов пользуйтесь скриптом от Nagual, или VBS-Скрипт-Модулем от ViSiToR.
 
Для перекодирования кирилицы 866<—>1251 пользуйтесь онлайн сервисом Перекодировщик кириллицы

 
Дополняем шапку: добавляем готовые решения, полезные ссылки.
 
Примечание: Большие куски кода заключайте в тэг [more]  
 
Смежные темы:
В помощь системному администратору » Автоматизация администрирования
Программы » Командная строка, батники\сценарии
 
Полезные ссылки
 
Полезные утилиты
 
Готовые решения и частые вопросы:
  • Встроенный справочник по командам
  • Создание помощи по всем командам консоли 2000 и XP
  • Делаем паузу в командном файле стандартными средствами Windows
  • Альтернативные решения »
  • Работа с текстом, датой, и файлами »
  • Администрирование, автоматизация и сеть »
  • Работа с переменными и параметрами ком. строки »
     
    Описания работы команд и символов участниками темы:
    · setlocal enabledelayedexpansion и переменные окружения
    · символы & и && в командной строке
    · Переменная %0

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 17:45 04-09-2010 | Исправлено: Accessor, 18:04 28-09-2010
    Engraf



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    А есть где-нить справочник по кодам ошибок различных команд (aka %ERRORLEVEL%)?
    Вот например для xcopy я кое-как нашел на каком-то форуме, а для net use так и не нашел.

    Всего записей: 67 | Зарегистр. 07-08-2007 | Отправлено: 11:00 08-09-2010
    wolf0425



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Mark_Titov
    Цитата:
    а как нужно..?
    а никак, переменная time НЕ должна определяться в батниках, чтоб %time%  работало как текущее время.
    зачем собственно я и предложил тебе проверить - что будет если её принудительно разопределить перед использованием, вдруг где-то ты её случайно определил и нам не сказал.

    Всего записей: 2920 | Зарегистр. 25-04-2007 | Отправлено: 11:32 08-09-2010 | Исправлено: wolf0425, 11:34 08-09-2010
    Mark_Titov



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    а никак, переменная time НЕ должна определяться в батниках, чтоб %time%  работало как текущее время.

    Так тогда он мне пишет так -
     
    08.09.2010 13:19:51,07 0% loss

    Всего записей: 387 | Зарегистр. 12-04-2010 | Отправлено: 12:21 08-09-2010 | Исправлено: Mark_Titov, 12:21 08-09-2010
    wolf0425



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    Так тогда он мне пишет так -
     08.09.2010 13:19:51,07 0% loss
    кто пишет?  
    do 1>>%log% echo.%date% %time:~,8% %%a в твоем батнике? ты нас обманываешь!

    Всего записей: 2920 | Зарегистр. 25-04-2007 | Отправлено: 12:46 08-09-2010 | Исправлено: wolf0425, 12:49 08-09-2010
    Mark_Titov



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    ы нас обманываешь!

    Ну делать мне больше нечего...

    Цитата:
    do 1>>%log% echo.%date% %time:~,8%

    Нет я просто когда ставлю %time%, тогда и пишет...
     
    А сейчас с %time:~,8% одно и тоже время пишет -
     

    08.09.2010 14:15:25 0% loss
    08.09.2010 14:15:25 0% loss
    08.09.2010 14:15:25 0% loss

     
    Добавлено:
    Может в винде какие траблы могут быть..?
    Винда английская...
     
    Та строка которая пишет дату и время вот у меня -
     

    Код:
    for /f "tokens=2 delims=()" %%a in ('ping -n 4 %site%') do 1>>%log% echo.%DATE% %time:~,8% %%a

    Всего записей: 387 | Зарегистр. 12-04-2010 | Отправлено: 13:16 08-09-2010 | Исправлено: Mark_Titov, 13:24 08-09-2010
    wolf0425



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    Нет я просто когда ставлю %time%, тогда и пишет...
    и при чем тут  это, когда выше тынаписал что в батнике %time:~,8% ?
    нафига ты пишешь текст одного батника, а жалуешься на лог другого?
     
    когда ты добавляешь в батник set time=%time:...  - %time% совершенно законно, по твоей команде, перестает соответствовать текущему времени.
     
    Добавлено:

    Цитата:
    Может в винде какие траблы могут быть..?
    Винда английская...
    в голове у тебя траблы.
    вставь строку set "time=" непосредственно перед строкой с %time:~,8%

    Всего записей: 2920 | Зарегистр. 25-04-2007 | Отправлено: 13:18 08-09-2010 | Исправлено: wolf0425, 13:27 08-09-2010
    GORA2



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Mark_Titov
     
    У Вас какая система, английская? У меня в логе пишет
    Цитата:
    08.09.2010  0:00:05 0% потерь
     
    а не как у Вас
    Цитата:
    08.09.2010 13:19:51,07 0% loss

     
    Попробуйте считывать переменные %date% %time% один раз в начале цикла и записать их в свои переменные, которые и будете использовать далее в цикле:
    Код:
    cls
    set tim=%time%
    set dat=%date%
    ...
    set "mes=%dat:~-7%"
    2>nul MD "%systemdrive%\%mes%\%dat%"
    ...
    for /f "tokens=2 delims=()" %%a in ('ping -n 4 %site%') do 1>>%log% echo.%dat% %tim:~,8% %%a
    ...

    Всего записей: 1271 | Зарегистр. 26-01-2006 | Отправлено: 13:26 08-09-2010
    Free_Soft



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    wolf0425
    Возвращаясь к записям в DNS столкнулся с проблемой. Команда netsh interface ip add dns не понимает имени интерфейса типа "Подключение по локальной сети" или "Local Area Connections", хотя в хелпе указываюся именно они. Ну может и к лучшему, ибо язык системы может быть установлен любой. А понимает команда имя интерфейса в виде "{BXXXXXXX-9XXX-4XXX-8XXX-DXXXXXXXXXXX}". Я так понимаю, что при разных инсталляциях Windows это имя меняется или нет? Откуда его можно считать? в ipconfig /all его нету...

    Всего записей: 1515 | Зарегистр. 19-04-2010 | Отправлено: 13:28 08-09-2010 | Исправлено: Free_Soft, 13:29 08-09-2010
    Mark_Titov



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    нафига ты пишешь текст одного батника, а жалуешься на лог другого?

    Я пишу текст всегда одного батника (и уже не первый раз)...
     

    Цитата:
    когда ты ставишь в батнике set time=%time:...

    Я давно уже его отключил и пробую другие варианты...

    Всего записей: 387 | Зарегистр. 12-04-2010 | Отправлено: 13:31 08-09-2010
    wolf0425



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    не понимает имени интерфейса типа "Подключение по локальной сети" или "Local Area Connections"
    у тебя наверно проблема с кодировкой
    или сохраняй батник в ОЕМ или пиши его в 1251, но и в сам батник впиши переключение на 1251.
     
    в виндово-гуишном списке соединений - соединение то как называется? по русски?
     

    Цитата:
    Я так понимаю, что при разных инсталляциях Windows это имя меняется или нет?
    наверняка меняется, если не клонированием винды сделаны. guid можно из регистри выдрать, но лучше разберись с кодировками, через имя интерфейса всё работало, я когда-то делал.
     
     
    Добавлено:
    Mark_Titov
    Цитата:
    Я пишу текст всегда одного батника (и уже не первый раз)...  
    ну да, и при этом жалуешься на сообщение, которое написанный тут тобою двумя страницами ранее код выдавать просто не может.
    А выдает у тебя потому, что ты чего-то в нем поменял, "пробуя другие варианты", и мы должны догадываться - чего. Причем я на 100% уверен что ты так и не попробовал сделать то, что тебе было сказано сделать.
     
    будешь ещё раз приводить "неправильный" лог - не поленись приожить (под more) полный текст батника, что этот лог печатал.

    Всего записей: 2920 | Зарегистр. 25-04-2007 | Отправлено: 13:33 08-09-2010 | Исправлено: wolf0425, 13:46 08-09-2010
    Free_Soft



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    wolf0425
    Да, проблема действительно в кодировке. вопрос тогда, как унифицировать батник, чтобы на системах с разным языком использовать можно было.... ммм.. К тому же, подключение можно ведь и переименовать ведь. может все же по коду {BXXXXXXX-9XXX... как то его идентифицировать можно?

    Всего записей: 1515 | Зарегистр. 19-04-2010 | Отправлено: 13:44 08-09-2010
    wolf0425



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    как унифицировать батник, чтобы на системах с разным языком использовать можно было.... ммм.. К тому же, подключение можно ведь и переименовать ведь.
    ну так ipconfig выдает же имя соединения? перехватить вывод и пропарсить.
     
    upd спропарсить будут проблемы - там от языка формат переключается.
     

    Цитата:
    может все же по коду {BXXXXXXX-9XXX... как то его идентифицировать можно?

    как-то - наверно можно. поищи у себя это {BXXXXXXX-9XXX в регистри (поиском), хоть посмотрим где оно там...

    Всего записей: 2920 | Зарегистр. 25-04-2007 | Отправлено: 13:57 08-09-2010 | Исправлено: wolf0425, 14:00 08-09-2010
    Free_Soft



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    wolf0425
    да где оно, я знаю,
    Только на всех машинах он разный или нет? Можешь у себя посмотреть?

    Всего записей: 1515 | Зарегистр. 19-04-2010 | Отправлено: 14:03 08-09-2010 | Исправлено: Free_Soft, 14:37 08-09-2010
    wolf0425



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    да где оно, я знаю,  
    зато я не знаю, а самомму искать лень.

    Всего записей: 2920 | Зарегистр. 25-04-2007 | Отправлено: 14:12 08-09-2010 | Исправлено: wolf0425, 14:13 08-09-2010
    Free_Soft



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    wolf0425
    Нажми "редактировать" и увидишь))

    Всего записей: 1515 | Зарегистр. 19-04-2010 | Отправлено: 14:15 08-09-2010
    wolf0425



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    Нажми "редактировать" и увидишь))
    ты не умничай, ты путь к этому ключику в регистри напиши.
     

    Всего записей: 2920 | Зарегистр. 25-04-2007 | Отправлено: 14:18 08-09-2010
    Free_Soft



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Говорю нажми "редактировать" на моем сообщении, и под # увидишь полные пути.

    Всего записей: 1515 | Зарегистр. 19-04-2010 | Отправлено: 14:20 08-09-2010
    wolf0425



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Free_Soft
    на виртуалке с ХП - интерфейсы {0D7BA7FD-560A-4 {78D52303-8929-4 {A581EECE-B4A1-4
    на боевой семерочной  {903AD47C-879B-4F7 {e29ac6c2-7037-11d {78030DEF-EFD3-4E4 {B7A4C074-30C0-401
    так что разные гуиды...  
     
    на семерке у меня мамкина сетевушка на {903AD47C - по ветке регистри это вполне понятно.
     

    Всего записей: 2920 | Зарегистр. 25-04-2007 | Отправлено: 14:26 08-09-2010 | Исправлено: wolf0425, 14:37 08-09-2010
    Free_Soft



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    wolf0425
    Понятно. ладно, будем ручками вводить

    Всего записей: 1515 | Зарегистр. 19-04-2010 | Отправлено: 14:28 08-09-2010
    wolf0425



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

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

    Всего записей: 2920 | Зарегистр. 25-04-2007 | Отправлено: 14:38 08-09-2010 | Исправлено: wolf0425, 14:38 08-09-2010
       

    Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 9
    vu1tur (09-01-2011 11:53): лимит страниц, продолжение — http://forum.ru-board.com/topic.cgi?forum=62&topic=22143


    Реклама на форуме Ru.Board.

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.Board
    © Ru.Board 2000-2020

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru