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

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

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

vu1tur (29-07-2011 12:47): Задачи на bat-файлах 11
 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

vu1tur



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

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

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

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 11:53 09-01-2011 | Исправлено: mazafakermazafaka, 11:22 04-06-2011
    wolf0425



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

    Цитата:
    как можно проверить работоспособность wmic? с какими службами она завязана

    sc query WmiApSrv

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 14:47 14-01-2011
    Free_Soft



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    wolf0425
    пасиб. в принципе, должно хватить?

    Всего записей: 1536 | Зарегистр. 19-04-2010 | Отправлено: 14:55 14-01-2011
    Pavlon333

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Есть bat файл с опциями копирования. Процесс достаточно продолжителен. Сконвертирован в exe с помощью Bat_To_Exe_Converter, т.к. запускается скрытно у пользователей. Плюс еще в экзешник включены командные файлы типа robocopy.exe
    Как запретить его повторный запуск в момент выполнения копирования?
    Бывает пользователи опять пытаются его запустить ...
     
    Строка с проверкой запущенного процесса, типа:
    FOR /F "usebackq" %%i IN (`tasklist^|find /i "test.exe"`) DO goto end
    :end
     
    не проходит, т.к. в процессах уже висит этот запущенный экзешник.
    Что можно сделать?

    Всего записей: 42 | Зарегистр. 21-08-2006 | Отправлено: 15:42 14-01-2011 | Исправлено: Pavlon333, 15:45 14-01-2011
    res2001



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Pavlon333
    Посчитай сколько процессов запущено и если больше 1, то goto:eof

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 15:53 14-01-2011
    dSasha

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Windows 7
    Пример: wevtutil qe application /q:*[System[(EventID=20225)]] -  так работает.
    Требуется: отфильтровать по источнику, например - RasClient или по нескольким EventID, например, 20221, 20222 или 20221-20226, или 20221-20222, 20224-20226. Никак не могу понять, как это сделать. В справке даже примера нет. Гуглом вышеприведённый пример нашёл, но мне, тупому, не помогло. Здесь мне не раз помогали. Можете сейчас подсказать? Спасибо!
     
    PS Добавлю сюда же. Нашёл способ фильтровать по списку номеров событий. Например, так:

    Цитата:
    wevtutil.exe qe application /f:text /q:"*[System[((EventID > 20221 and EventID < 20222) or (EventID > 20224 and EventID < 20227))]]" > %userprofile%\Desktop\file.txt
    Вроде бы, просто, для профи. А чайник, как я, поди, догадайся.

    Всего записей: 30 | Зарегистр. 15-06-2007 | Отправлено: 03:41 15-01-2011 | Исправлено: dSasha, 02:41 17-01-2011
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    dSasha
    Что является источником для строк? Это какой-то лог?


    ----------
    Вопросы в личке останутся без ответа

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 07:32 15-01-2011
    dSasha

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Да. Журналы Windows. "Просмотр событий":
    Цитата:
    - System  
      - Provider  
       [ Name]  RasClient  
      - EventID 20225  
       [ Qualifiers]  0  
       Level 4  
       Task 0  
       Keywords 0x80000000000000  
      - TimeCreated  
       [ SystemTime]  2011-01-14T21:39:54.000000000Z  
       EventRecordID 24292  
       Channel Application  
       Computer ab  
       Security  
     - EventData  
       {4D6204F7-EE4E-4791-841D-0077838DE4E2}  
       ab\a  
       SKYLINK NetWork  
       TunnelIpAddress = 95.86.214.202 TunnelIpv6Address = None Dial-in User = mobile  
    Вроде XP-шной eventquery, но там /fo list | find , а тут list нет, только /f:text.
    Цитата:
    Event[174]:
      Log Name: Application
      Source: RasClient
      Date: 2011-01-15T00:39:54.000
      Event ID: 20225
      Task: N/A
      Level: Сведения
      Opcode: Сведения
      Keyword: Классический
      User: N/A
      User Name: N/A
      Computer: ab
      Description:  
    CoID={4D6204F7-EE4E-4791-841D-0077838DE4E2}: Пользователь ab\a успешно подключился к серверу удаленного доступа. Имя подключения: SKYLINK NetWork. Параметры подключения:
    TunnelIpAddress = 95.86.214.202
    TunnelIpv6Address = None
    Dial-in User = mobile.
    Непонятно, что нужно вписать после /q:.

    Всего записей: 30 | Зарегистр. 15-06-2007 | Отправлено: 08:13 15-01-2011 | Исправлено: dSasha, 08:17 15-01-2011
    Free_Soft



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

    Всего записей: 1536 | Зарегистр. 19-04-2010 | Отправлено: 12:38 15-01-2011
    lorents



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

    Код:
    for /L %%a in (0,1,3) do for /L %%b in (1,1,9) do for /L %%c in (1,1,9) do for /f "delims=" %%j in ('dir /b /s /a-d %%a%%b%%c\*.png') do (
        echo "%%~fj"
        truepng -zw0 -zs%%a -zc%%b -zm%%c -fe -force "%%~fj" >nul
    )

    мне выдает, что

    Цитата:
    Достигнут уровень рекурсии, максимально возможный для команды SETLOCAL.

    Подскажите, что это значит, и как исправить?

    Всего записей: 3297 | Зарегистр. 30-12-2007 | Отправлено: 17:59 15-01-2011 | Исправлено: lorents, 17:59 15-01-2011
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    lorents
    А где у тебя он прописан? Так бывает когда  вызываешь setlocal в цикле и не закрываешь endlocal.


    ----------
    Вопросы в личке останутся без ответа

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 18:21 15-01-2011
    lorents



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    01MDM
    Разобрался, спасибо. я и не заметил

    ----------
    Image Catalyst - оптимизация изображений без потери качества

    Всего записей: 3297 | Зарегистр. 30-12-2007 | Отправлено: 18:48 15-01-2011
    bomzzz



    Запрет на пост
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Free_Soft
    через вми наверняка можно

    Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 18:50 15-01-2011
    wolf0425



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    как бы получить в переменную время модификации файла с секундами ?

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 18:16 17-01-2011
    01MDM



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

    Код:
     
    wmic datafile where name="Full:\\Path\\To\\file.ext" get lastmodified /value
     

    И распарсить выхлоп

    ----------
    Вопросы в личке останутся без ответа

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 19:27 17-01-2011
    Joo1z



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    dSasha
    IMHO, в семерке лучше юзать powershell. Глянь ветку по нему, там разбор eventlog'а есть.

    Всего записей: 123 | Зарегистр. 17-02-2009 | Отправлено: 09:38 18-01-2011
    user5nov

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Здравствуете помогите написать скрипт, наподобии следующего:
    for /R "%UserProfile%\Рабочий стол" %%i in (*.*) do if not %%~xi==.lnk del /F /Q "%%~fi"
     
    нехватает в нем удаление папок.
    Хотелось бы чтобы ярлыки оставались.

    Всего записей: 112 | Зарегистр. 19-10-2005 | Отправлено: 13:01 18-01-2011
    res2001



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

    Цитата:
    нехватает в нем удаление папок.  


    Код:
    for /f %%i in ('dir /b /A:D "%UserProfile%\Рабочий стол" ') do echo rd /s/q "%UserProfile%\Рабочий стол\%%i"

    echo удалишь сам.

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 13:20 18-01-2011 | Исправлено: res2001, 13:20 18-01-2011
    user5nov

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    res2001
     
    где-то проблема, не отрабатывает по unc пути, грить ненайдена папка с руским именем "Новая папка"

    Всего записей: 112 | Зарегистр. 19-10-2005 | Отправлено: 13:52 18-01-2011
    res2001



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    user5nov
    Попробуй так:
    for /f "tokens=*" %%i in ('dir /b /A:D "%UserProfile%\Рабочий стол" ') do echo rd /s/q "%UserProfile%\Рабочий стол\%%i"

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 14:04 18-01-2011
    user5nov

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    res2001
    получилось, но файлы такого типа остаются:
    Рисунок OpenDocument.odg, Точечный рисунок.bmp, Лист Microsoft Excel.xlsx

    Всего записей: 112 | Зарегистр. 19-10-2005 | Отправлено: 14:15 18-01-2011
       

    Страницы: 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

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 10
    vu1tur (29-07-2011 12:47): Задачи на bat-файлах 11


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru