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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
    01MDM



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

    Код:
     
    @echo off
     
    for %%i in (q w e r t y u i o p a s d f g h j k l z x c v b n m) do (
     
        if exist %%i: del /s /a /f %%i:\*.pic
     
    )  
     
    pause
     



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

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 23:27 06-03-2011
    INKOGNI



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    01MDM
    То, что нужно, благодарю

    Всего записей: 1355 | Зарегистр. 09-01-2006 | Отправлено: 23:42 06-03-2011
    korosya

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Непонятки с FINDSTR
    Берётся файл txtsetup.sif из дистрибутива WinXp/ Выполняется комманда

    Код:
    FINDSTR  /R /C:"usb[eou]hci *= *\"" /C:"usbhub *= *\"" /C:"usbstor *= *\"" txtsetup.sif

    Выводится

    Код:
    usbehci  = "Расширенный хост-контроллер",files.usbehci,usbehci
    usbohci  = "Контроллер открытого узла",files.usbohci,usbohci
    usbuhci  = "Контроллер универсального узла",files.usbuhci,usbuhci
    usbhub   = "Драйвер универсального концентратора для USB",files.usbhub,usbhub
    usbstor  = "Драйвер класса запоминающих устройств USB",files.usbstor,usbstor

     
    То есть всё находится нормально. Далее пытаюсь сбросить это в файл:

    Код:
    FINDSTR  /R /C:"usb[eou]hci *= *\"" /C:"usbhub *= *\"" /C:"usbstor *= *\"" txtsetup.sif >> 1.txt

     
    Получаю:

    Код:
    txtsetup.sif:usbehci  = "Расширенный хост-контроллер",files.usbehci,usbehci
    txtsetup.sif:usbohci  = "Контроллер открытого узла",files.usbohci,usbohci
    txtsetup.sif:usbuhci  = "Контроллер универсального узла",files.usbuhci,usbuhci
    txtsetup.sif:usbhub   = "Драйвер универсального концентратора для USB",files.usbhub,us
    bhub
    txtsetup.sif:usbstor  = "Драйвер класса запоминающих устройств USB",files.usbstor,usbs
    tor
    FINDSTR: Не удается открыть 1.txt

     
    Причем слова txtsetup.sif: выделены белым цветом.
    Подскажите в чем затык?

    Всего записей: 1005 | Зарегистр. 19-07-2003 | Отправлено: 13:16 07-03-2011 | Исправлено: korosya, 13:17 07-03-2011
    lorents



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

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

    Всего записей: 3297 | Зарегистр. 30-12-2007 | Отправлено: 14:21 07-03-2011 | Исправлено: lorents, 14:45 07-03-2011
    res2001



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

    Цитата:
    не получается получить значение %%j

    Дык в процедуре print и нет никакого значения %%j. Откуда бы ему взяться?
     
    Добавлено:
    korosya
    Вот так работает:
    >>1.txt FINDSTR  /R /C:"usb[eou]hci *= *\"" /C:"usbhub *= *\"" /C:"usbstor *= *\"" txtsetup.sif
     
     
    Добавлено:
    Это происходит видимо из-за того, что у тебя нечетное количество кавычек в ком.строке и cmd решает, что последняя кавычка не закрыта, поэтому он закрывает ее в конце всей строки, таким образом получаем команду:
    FINDSTR  /R /C:"usb[eou]hci *= *\"" /C:"usbhub *= *\"" /C:"usbstor *= *\"" txtsetup.sif >> 1.txt"
    т.е. >>1.txt передается как параметр для findstr, а не как указание cmd перенаправить выходной поток в файл.

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 14:48 07-03-2011
    Free_Soft



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

    Код:
    1>>"%windir%\temp\clear.vbs" echo.CreateObject("WScript.Shell").Run "%windir%\temp\clear.cmd", 0, False

    все нормально. а так

    Код:
    if exist rebFlag (
    ...
    1>>"%windir%\temp\clear.vbs" echo.CreateObject("WScript.Shell").Run "%windir%\temp\clear.cmd", 0, False
    ...
    )

    пишет

    Код:
    непредвиденное появление .Run


    ----------
    На вашей перфокартѣ обнаруженъ вирусъ, механизмъ будетъ остановленъ.

    Всего записей: 1536 | Зарегистр. 19-04-2010 | Отправлено: 00:14 08-03-2011 | Исправлено: Free_Soft, 00:14 08-03-2011
    Rush

    Уже за тридцать...
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Free_Soft
    Спотыкается на скобках. Исправь на
    Код:
    CreateObject^("WScript.Shell"^).Run

    Всего записей: 3551 | Зарегистр. 20-11-2003 | Отправлено: 06:35 08-03-2011
    Free_Soft



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

    ----------
    На вашей перфокартѣ обнаруженъ вирусъ, механизмъ будетъ остановленъ.

    Всего записей: 1536 | Зарегистр. 19-04-2010 | Отправлено: 09:28 08-03-2011
    mcdemon

    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Подскажите как составить батник что-бы он делал вносил в реестр то, что я приведу ниже (рег файлик)
     
    REGEDIT4  
     
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]  
    "ArpCacheLife"=dword:ffffffff  
    "ArpCacheMinReferencedLife"=dword:ffffffff

    Всего записей: 49 | Зарегистр. 18-08-2005 | Отправлено: 08:09 09-03-2011
    BVV63



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

    Код:
    Reg Add "HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters"
    Reg Add "HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" /V "ArpCacheLife" /T Reg_DWord /D 0xFFFFFFFF /F
    Reg Add "HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" /V "ArpCacheMinReferencedLife" /T Reg_DWord /D 0xFFFFFFFF /F

    Всего записей: 3542 | Зарегистр. 17-08-2009 | Отправлено: 08:23 09-03-2011 | Исправлено: BVV63, 08:25 09-03-2011
    mcdemon

    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    а можно узнать, что делают ключи? /V /T /D /F

    Всего записей: 49 | Зарегистр. 18-08-2005 | Отправлено: 06:25 10-03-2011
    Mr_Hat



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    mcdemon
    читай справку Reg Add /?

    Всего записей: 984 | Зарегистр. 04-10-2005 | Отправлено: 06:31 10-03-2011
    Rush

    Уже за тридцать...
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    mcdemon

    Цитата:
    а можно узнать, что делают ключи? /V /T /D /F

    комстрока >
    Код:
    ms-its:%systemroot%\Help\ntcmds.chm::/reg.htm

    и все будет понятно.

    Всего записей: 3551 | Зарегистр. 20-11-2003 | Отправлено: 06:44 10-03-2011
    mcdemon

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

    Цитата:
    Reg Add "HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters"  
    Reg Add "HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" /V "ArpCacheLife" /T Reg_DWord /D 0xFFFFFFFF /F  
    Reg Add "HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" /V "ArpCacheMinReferencedLife" /T Reg_DWord /D 0xFFFFFFFF /F

     
    батник будет запускаться как минимум каждый раз при запуске системы
    как сделать, что-бы при Параметр  уже существует, заменить (Y - да/N - нет)?
    батник сам нажимал да? или это сообщение просто не вылазило, то-есть всегда заменялся параметр.

    Всего записей: 49 | Зарегистр. 18-08-2005 | Отправлено: 16:40 10-03-2011 | Исправлено: mcdemon, 16:43 10-03-2011
    Accessor



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    mcdemon
    Удалите первую строчку батника. Она там вообще ни к чему. И именно она вызывает проблему.
     
    Добавлено:
    Или добавьте в конце этой строки параметр /f

    Всего записей: 2863 | Зарегистр. 31-10-2003 | Отправлено: 16:56 10-03-2011 | Исправлено: Accessor, 16:59 10-03-2011
    lorents



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Добрый вечер!
    Помогите, пожалуйста, решить следующую задачу

    Код:
    @echo off
    for /f "delims=" %%i in ('dir /b /s /a-d Dir4\*.png') do (
        for /f "tokens=*" %%j in ('"pngout -l "%%~fi""') do set mode=%%j
        echo !mode!
    )

    mode у меня применяет значение /c# /f# /n#, где # - любые натуральные числа.
    мне надо получить отдельно значение /f, подскажите, как это сделать?

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

    Всего записей: 3297 | Зарегистр. 30-12-2007 | Отправлено: 21:42 11-03-2011 | Исправлено: lorents, 21:43 11-03-2011
    aidarsimon



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите пожалуйста как сделать перенос строки. Чтобы текст в выводе cmd занимал не всю длину окна, а чтоб определенную длину.
     
    "Обнаружена проблема безопасности, которая может позволить
    злоумышленнику неправильно представить действие или поведение системы
    без ведома пользователя. Чтобы защитить систему, установите это обновление
    корпорации Майкрософт. После его установки может потребоваться  
    перезагрузка компьютера."
     
    Вот например, чтоб так отображалось в ECHO

    Всего записей: 3749 | Зарегистр. 06-09-2008 | Отправлено: 21:53 11-03-2011
    wolf0425



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

    Цитата:
    Подскажите пожалуйста как сделать перенос строки.

    выводить несколькими командами echo последовательно - чем-то не устраивает?
     
    lorents что тебе надо то - сделать ветку по /f 7 код там у тебя какой-то стремный, и что выдает pngout -l  гадать совершенно не хочется

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 22:23 11-03-2011
    lorents



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    wolf0425
    выдает он например /c6 /f5 /n1 или /c2 /f0 /n9, мне надо получить число которое рядом с /f
    а почему код стремный?
     
    Вопрос снимаю, разобрался

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

    Всего записей: 3297 | Зарегистр. 30-12-2007 | Отправлено: 22:45 11-03-2011 | Исправлено: lorents, 23:48 11-03-2011
    aidarsimon



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

    Цитата:
    выводить несколькими командами echo последовательно - чем-то не устраивает?

    Жесть, вот я тупанул. Все было так просто ))

    Всего записей: 3749 | Зарегистр. 06-09-2008 | Отправлено: 22:56 11-03-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