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

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

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

vu1tur (04-09-2010 17:46): http://forum.ru-board.com/topic.cgi?forum=62&topic=21297  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199

   

vu1tur



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

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

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

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 12:40 25-01-2010 | Исправлено: bomzzz, 13:37 20-08-2010
    sergij

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Ув.  mugil_cephalus
    Большое спасибо за ваше внимание за ваше интересное решение такой проблемы
    да всё получается как надо  - если в логах выстроенно строчка за строчкой
    но у меня логи идут через строчку ( просто это один из многих этапов обработки текста и вывод в логи получается через строчку)  и вот после их обработки получается удвоение каждого  компа мака и юзера т.е .
     
    WS 01   0001445566  vasya
    WS 01   0001445566  vasya
    WS 02   0011223344   petya
    WS 02   0011223344   petya  итд
     
    Я конечно итак Вам безмерно благодарен - буду и сам разбираться но если Вас не затруднит .....
     
    king_stiven Вам тоже спасибо - просто хотелось бы без sed

    Всего записей: 39 | Зарегистр. 14-03-2006 | Отправлено: 20:51 10-03-2010 | Исправлено: sergij, 21:09 10-03-2010
    king_stiven

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    sergij
    замени
    set /a skp=!skp!+1 на
    set /a skp=!skp!+2

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 21:08 10-03-2010
    sergij

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    king_stiven  
     
    О теперь получилось Спасибо Вам Ребята !!!!!  
     
    А нельзя вот это пояснить  
     
    if /i "_%skp%" equ "_" set "skp=0"  
    set /a skp=!skp!+1  
    set "skp=skip=!skp!"  
    1>>out.txt 2>&1 echo.  
     
    а вдруг понадобится 10 колонок делать и как их красиво выровнять под заголовок???

    Всего записей: 39 | Зарегистр. 14-03-2006 | Отправлено: 21:17 10-03-2010 | Исправлено: sergij, 21:26 10-03-2010
    mugil_cephalus

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    sergij
    если делать 10 колонок, то придется делать 10 циклов for
    см for /?
    а блок кода
    Цитата:
    if /i "_%skp%" equ "_" set "skp=0"  
    set /a skp=!skp!+1  
    set "skp=skip=!skp!"  
    1>>out.txt 2>&1 echo.  

    нужен просто как счетчик
    см if /?
    set /?
    echo. - вывод пустой строки
    Уильям Станек - Командная строка Microsoft Windows - http://rapidshare.com/files/89629093/Stanek_CLI_MS_Win.rar  
    см help - C:\WINDOWS\Help\ntcmds.chm
    форматирование в батниках не предусмотрено - я ровнял "на глаз" пробелы под заголовок

    Всего записей: 1072 | Зарегистр. 07-09-2009 | Отправлено: 21:46 10-03-2010
    kermit

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

    Цитата:
    Ну не знаю, как насчёт красоты, можно так:  

     
    о! запускать пиканье отдельным батником это оригинально!
    как я сам не додумался  

    Всего записей: 463 | Зарегистр. 01-10-2003 | Отправлено: 21:56 10-03-2010
    mugil_cephalus

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

    Цитата:
    taskkill /F /FI "WINDOWTITLE eq dfgh" /im cmd.exe /T  

    у тебя какая win? english?
    а то у меня на rus - "порнография" (это из станека):
       
    я с фильтром пока не связывался - не знаю как отреагирует на кириллицу:
    X:\>tasklist /v
     
    Имя образа                   PID Имя сессии       № сеанса       Память Статус          Пользователь                                           Вр
    емя ЦП Заголовок окна
    ========================= ====== ================ ======== ============ =============== ================================================== ======
    ====== ========================================================================
    System Idle Process            0 Console                 0        16 КБ Работает        NT AUTHORITY\SYSTEM                                    12
     
    но раньше глючило

    Всего записей: 1072 | Зарегистр. 07-09-2009 | Отправлено: 21:57 10-03-2010
    sergij

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    mugil_cephalus
    За ссылку спасибо -остальное и другое имел Вот сделал на 5 циклов и благодаря именно Вам оно работает - Ещё раз Спасибо

    Код:
    chcp 1251
    setlocal enabledelayedexpansion
    echo Имя комьютера      MAC-адрес    Пользователь          IP-Адрес           E-Mail >>out.txt
    :loop
    for /f "tokens=* %skp%" %%i in (001.log) do (
    0>nul 1>>out.txt 2>&1 set /p="%%i         "
    for /f "tokens=* %skp%" %%i in (002.log) do (
    0>nul 1>>out.txt 2>&1 set /p="%%i         "
    for /f "tokens=* %skp%" %%i in (003.log) do (
    0>nul 1>>out.txt 2>&1 set /p="%%i         "
    for /f "tokens=* %skp%" %%i in (004.log) do (
    0>nul 1>>out.txt 2>&1 set /p="%%i         "
    for /f "tokens=* %skp%" %%i in (005.log) do (
    0>nul 1>>out.txt 2>&1 set /p="%%i         "
    if /i "_%skp%" equ "_" set "skp=0"
    set /a skp=!skp!+2
    set "skp=skip=!skp!"
    1>>out.txt 2>&1 echo.
    goto:loop
    )))))

    Всего записей: 39 | Зарегистр. 14-03-2006 | Отправлено: 22:14 10-03-2010
    king_stiven

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

    Цитата:
    я с фильтром пока не связывался - не знаю как отреагирует на кириллицу:  

    поясни. что имеешь в виду.

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 22:34 10-03-2010 | Исправлено: king_stiven, 23:05 10-03-2010
    mugil_cephalus

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    king_stiven
    в command line mode:
    1)
    X:\>TASKLIST /FI "STATUS eq running"
    Ошибка: Фильтр поиска не опознан.
     
    2)
    X:\>tasklist /fi "Статус eq Работает"
    Ошибка: Фильтр поиска не опознан.
     
    еще
    X:\>TASKLIST /M wbem*
    Ошибка: Фильтр поиска не опознан.
     
    3)
    X:\>TASKLIST /FI "USERNAME ne NT AUTHORITY\SYSTEM" /FI "STATUS eq running"
    Ошибка: Фильтр поиска не опознан.
     
    4) а это работает (странно) :
    X:\>tasklist /fi "WINDOWTITLE ne z"
     
    5)
    X:\>tasklist /fi "PID gt 1000"
    Ошибка: Фильтр поиска не опознан.
     
    6) работает:
    X:\>tasklist /fi "IMAGENAME eq explorer.exe"
     
    7)
    X:\>tasklist /fi "SERVICES eq PlugPlay"
    Ошибка: Фильтр поиска не опознан.
     
    8)
    X:\>tasklist /m ntdll.dll
    Ошибка: Фильтр поиска не опознан.

    Всего записей: 1072 | Зарегистр. 07-09-2009 | Отправлено: 23:13 10-03-2010 | Исправлено: mugil_cephalus, 00:02 11-03-2010
    king_stiven

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    mugil_cephalus
     taskkill /F /FI "PID eq 2716" /im cmd.exe /T
    Успешно: Процесс, с идентификатором 3852, дочерний процесса 2716, был завершен.
    Успешно: Процесс, с идентификатором 2716, дочерний процесса 2144, был завершен.
     
    тоже работает, не путай TASKLIST и taskkill. С TASKLISTом можешь поковыряться, может сам напутал.

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 23:58 10-03-2010
    mugil_cephalus

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

    Цитата:
    тоже работает, не путай TASKLIST и taskkill.

    я их не путаю, просто фильтры у taskkill'a похожи или идентичны tasklist'u

    Всего записей: 1072 | Зарегистр. 07-09-2009 | Отправлено: 00:05 11-03-2010
    Kirillhome



    Full Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    mugil_cephalus
     
    C:\>TASKLIST /FI "Состояние eq running"
    Информация: Задачи, отвечающие заданным критериям, отсутствуют.
     
    C:\>TASKLIST /FI "Status eq running"
    Ошибка: Фильтр поиска не опознан.
     
    Похоже, действительно проблемы в локализации - если взять TaskList здесь (англ., версия 5.1.2600.0) - то всё прекрасно работает, в отличии от родного (в XP Rus) (рус., версия 5.1.2600.5512).
     
    Полная какая-то чепуха...
    В родном русском tasklist работает и выводит одинаковую информацию
    tasklist /fi "Состояние ne Running"
    tasklist /fi "Состояние ne Not Responding"
     
     
    Добавлено:
    А вообще - всё уже было

    Всего записей: 426 | Зарегистр. 23-11-2004 | Отправлено: 02:15 11-03-2010 | Исправлено: Kirillhome, 02:51 11-03-2010
    kermit

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    подскажите, как из скрипта отформатировать переносной диск в NTFS?
    Виндовый родной format задает много вопросов, отключить которые не получается

    Всего записей: 463 | Зарегистр. 01-10-2003 | Отправлено: 09:41 11-03-2010
    mugil_cephalus

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Kirillhome
    а у тебя какая машина?
    у меня 5.1.2600.5512 rus и пишет так:

    Цитата:
    Имя образа                   PID Имя сессии       № сеанса       Память Статус          Пользователь                                           Вр  
    емя ЦП Заголовок окна  
    ========================= ====== ================ ======== ============ =============== ================================================== ======  
    ====== ========================================================================  
    System Idle Process            0 Console                 0        16 КБ Работает        NT AUTHORITY\SYSTEM                                    12  
     

    то есть у меня в tasklist /v - "Статус", а у тебя - "Состояние" ?

    Всего записей: 1072 | Зарегистр. 07-09-2009 | Отправлено: 09:59 11-03-2010
    Kirillhome



    Full Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    mugil_cephalus
    XP SP3 Rus
    Заголовок у "родного" taskList-а - такой же, как у тебя.
    Но при этом:
    C:\>tasklist /fi "Статус eq running"
    Ошибка: Фильтр поиска не опознан.
     
    C:\>TASKLIST /FI "Состояние eq running"
    Информация: Задачи, отвечающие заданным критериям, отсутствуют.
     
    Возможно, конечно, "состояние" - это ещё что-то перевели (как, к примеру, не "Users", а "Пользователь"; не "PID", а "ID процесса"; не "windowtitle", а "Название окна"  - и т.д.) - не знаю.
    Нормальной справки так и не нашёл по русской версии tasklist-а.

    Всего записей: 426 | Зарегистр. 23-11-2004 | Отправлено: 10:14 11-03-2010
    mugil_cephalus

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Kirillhome
    зря я в школе учил немецкий, учил бы английскйи - поставил бы себя win eng...  
    уж лучше бы китайский учил - авось пригодился бы...  
     
    Добавлено:
    Kirillhome
    я раньше сталкивался с сбоями в tasklist'e, поэтому фильтры не юзал, а у taskkill'a - похожие фильтры, - с taskkill'om у тебя не было проблем с фильтром ?

    Всего записей: 1072 | Зарегистр. 07-09-2009 | Отправлено: 10:26 11-03-2010
    Kirillhome



    Full Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    mugil_cephalus
    Я для себя очень мало чего из этой темы применяю, а "свечусь" в ней - так как просто интересно разобраться и помочь окружающим
    На сколько я понял, у taskkil-а фильтры действуют согласно справке (вне зависимости от локализации), в отличии от tasklist-а.

    Всего записей: 426 | Зарегистр. 23-11-2004 | Отправлено: 11:17 11-03-2010
    mugil_cephalus

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Kirillhome
    когда я читал фигурнова (2003-ий год) , мне, в отличие от большинства юзеров, очень понравился cli (тогда - dos/batch) , а не gui
     
    Добавлено:
    kermit

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

    покажи листинг
    p.s.
    http://forum.ru-board.com/forum.cgi?forum=84
    --------------------
    ты об этом?
     

    Всего записей: 1072 | Зарегистр. 07-09-2009 | Отправлено: 11:31 11-03-2010 | Исправлено: mugil_cephalus, 11:39 11-03-2010
    Kirillhome



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

    Цитата:
    подскажите, как из скрипта отформатировать переносной диск в NTFS?
    Виндовый родной format задает много вопросов, отключить которые не получается
     

    К примеру, так:

    Код:
     
    echo.|format U: /v:"" /x
     

    Всего записей: 426 | Зарегистр. 23-11-2004 | Отправлено: 12:03 11-03-2010
    ADMINOVI4OK

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    народ помогите пжл.!!!  
    нужно сделать *.bat  и *.cmd (для 98 и XP) такого "содержания" :  
    1) чистит папки (темп);  
    2) проверка диска на наличие ошибок;  
    3) дефрагментация.  
    Заранее благодарен за помощь !
    забыл сказать : дисков несколько, что бы по окончанию выключался пк!

    Всего записей: 4 | Зарегистр. 09-03-2010 | Отправлено: 14:27 11-03-2010 | Исправлено: ADMINOVI4OK, 14:33 11-03-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 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 8
    vu1tur (04-09-2010 17:46): http://forum.ru-board.com/topic.cgi?forum=62&topic=21297


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

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru