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

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



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Free_Soft
    Пара встречных вопросов. Может ли операция завершиться успешно? Если да, при ошибке код возврата отличен от нуля? Продолжите строку:

    Код:
    for /f "delims=*" %%a in ('"wmic /namespace:\\root\cimv2 path ... where (ID=...) call activate" & Echo %ErrorLevel%')...

     
    Добавлено:
    Возможно, символы "&" и "%" в скобках потребуется экранировать символом "^".

    Всего записей: 3542 | Зарегистр. 17-08-2009 | Отправлено: 05:58 01-12-2010 | Исправлено: BVV63, 06:00 01-12-2010
    mouser

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

    Всего записей: 800 | Зарегистр. 10-11-2006 | Отправлено: 07:16 01-12-2010
    bomzzz



    Запрет на пост
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    mouser
    WMI.
     

    Код:
    WMIC /?

     
    Добавлено:
    ой. грузят хдд? не оперативку а жесткий диск?

    Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 07:27 01-12-2010
    mouser

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

    Цитата:
    ой. грузят хдд? не оперативку а жесткий диск?

     
    да. нужно мониторить жесткий диск

    Всего записей: 800 | Зарегистр. 10-11-2006 | Отправлено: 07:45 01-12-2010
    bomzzz



    Запрет на пост
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ну есть проги которые диск мониторят, но по процессам не расписывают.
     
    Добавлено:
    Hard Disk Sentinel 3.40 недавно ставил. ниче так

    Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 07:48 01-12-2010
    mouser

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    bomzzz
    неее )))  
     
    мне нужно не SMART мониторить, а активность HDD ... то есть сколько байт сейчас считывает процесс
     
    есть в семёрке "мониторинг ресурсов" но там вроде только через GUI ((

    Всего записей: 800 | Зарегистр. 10-11-2006 | Отправлено: 07:56 01-12-2010
    bomzzz



    Запрет на пост
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    в этой проге на одной из вкладок есть сколько кбайт считывает. только по процессам не расписано

    Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 08:10 01-12-2010
    mouser

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    bomzzz
    процесс тоже пишет ... но мне все равно надо что-то консольное

    Всего записей: 800 | Зарегистр. 10-11-2006 | Отправлено: 08:23 01-12-2010
    bomzzz



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

    Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 08:27 01-12-2010
    wolf0425



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Free_Soft
    Цитата:
    как загнать в переменную только выделенное жирным?

    for /f "tokens=1* delims= =" %%a ... do if /i "%%~a" equ "Код" set "var=%%~b"
     
    откуда ты "delims=*" подхватил, кстати? скрестил "tokens=*" и  "delims=" ?

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



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    BVV63
    Может завершиться и успешно. Однако рассматривается случай именно с ошибкой. Errorlevel вернет со значением 1. А хотелось бы показание. К тому же код ошибки может быть и другим.
    wolf0425
    А как можно отвязаться от русской локализации?
     

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



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

    Цитата:
    А как можно отвязаться от русской локализации?  

    попробуй так:
    set "var="
    for /f "skip=1 tokens=1* delims= =" %%a ... do if not defined var set "var=%%~b"  
    это присвоение переменной первого найденного второго слова, начиная поиск со второй строки. вроде должно хватать.
     
    Добавлено:

    Цитата:
    Может завершиться и успешно. Однако рассматривается случай именно с ошибкой. Errorlevel вернет со значением 1
    приведенный BVV63 пример должен вернуть строку с Errorlevel, полученным от идущей перед for строки батника, что явно не то что вы оба думаете.

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



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    wolf0425
    Хм. Там перед всем еще одна строка с выполнением команды... Тогда будет skip=2?

    Всего записей: 1515 | Зарегистр. 19-04-2010 | Отправлено: 12:10 01-12-2010
    wolf0425



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

    Цитата:
    Тогда будет skip=2?

    наверно. проверь - у меня же нет всего кода for.
    но мне казалось что выполнение команды не идет в stdout.
    с другой стороны у wmic чего-то было нездоровое с печатью...
     
    в общем-то в строке ОШИБКА: нет пробела, так что без скипа её и её английский вариант - присвоение само проигнорирует, скип я приписал про запас (хз что там пишет китайская винда)
    критичны только строки с пробелом или = перед строкой с кодом.
    если очень хочется - можно и на пробел не реагировать, резать строку чисто по =, а пробел отдельно отрезать ниже.

    Всего записей: 2920 | Зарегистр. 25-04-2007 | Отправлено: 12:37 01-12-2010 | Исправлено: wolf0425, 13:16 01-12-2010
    magsimga

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Кто нибудь может скинуть мне NTFS Links и Link Shell Extension? очень нужно, я скачал  NTFS Links но она у меня что-то не пошла((
    заранее спасибо

    Всего записей: 27 | Зарегистр. 23-11-2010 | Отправлено: 19:00 01-12-2010
    VitGT

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Нужна помощь
    Есть такая команда которая копирует папку содержащую в конце имени P

    Код:
    set SDIRV=d:\2
    set DDIRV=d:\1
     
    for /d %%i in ("%SDIRV%\*P") do xcopy /s "%%i" "%DDIRV%\"

    А мне нужно только один файлик скопировать 123.txt .  
    Как такое реализовать ?
     

    Всего записей: 18 | Зарегистр. 12-07-2007 | Отправлено: 23:22 01-12-2010 | Исправлено: VitGT, 01:47 02-12-2010
    BVV63



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    magsimga
    Вы для своей просьбы первую попавшуюся тему выбрали? Ладно, держите NTFS Link: http://depositfiles.com/files/2rbzd566t Нажмите "Редактировать", затем возьмите ссылку.
     
    Добавлено:
    VitGT
    Файлик "123.Txt" где лежит? В папке *P? Ну, тогда так:

    Код:
    set SDIRV=d:\2
    set DDIRV=d:\1
     
    for /d %%i in ("%SDIRV%\*P\123.Txt") do xcopy /s "%%i" "%DDIRV%\"

    Всего записей: 3542 | Зарегистр. 17-08-2009 | Отправлено: 05:34 02-12-2010
    Free_Soft



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    как грамотнее выполнить одно действие при двух условиях? желательно без перехода по меткам.
    Например, если
    Код:
    if /i "%er%" == "false"
    и
    Код:
    if /i "%min%" == "259200"

    написать
    Код:
    echo Not error!

    Всего записей: 1515 | Зарегистр. 19-04-2010 | Отправлено: 10:31 02-12-2010
    wolf0425



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

    Цитата:
    как грамотнее выполнить одно действие при двух условиях?  

    какие -то проблемы написать два if  в одну строку?
    Или я чего-то не понимаю в том, какое условие в сумме требуется?
     

    Код:
    if /i "%er%" == "false" if /i "%min%" == "259200" echo Not error!  

    Всего записей: 2920 | Зарегистр. 25-04-2007 | Отправлено: 10:33 02-12-2010
    bomzzz



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

    Цитата:

    ECHO OFF
    COLOR 9F
    CLS
    set er=false
    set min=259200
    if /i "%er%" == "false" if /i "%min%" == "259200" echo Not error!
    pause

    Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 10:36 02-12-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