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

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

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

vu1tur (25-01-2010 12:41): лимит страниц, продолжение: http://forum.ru-board.com/topic.cgi?forum=62&topic=19668  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

vu1tur



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

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

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

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 11:37 26-05-2009 | Исправлено: TechnicsKuzya, 13:53 27-12-2009
    mouser

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    wolf0425
    как полученые файл обрезать 3 верхние строки, 1-ну внизу и есть пустые переходы на строки (ENTER) как всё это из файла убрать ???

    Всего записей: 800 | Зарегистр. 10-11-2006 | Отправлено: 15:32 20-11-2009
    king_stiven

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    mouser
    sed  
    Удалить первые 10 строк в файле:  
    sed "1,10d"  
     
    Удалить последнюю строку в файле:  
    sed "$d"  
     
    Удалить ВСЕ пустрые строки из файла (эмуляция "grep '.' "):  
    Версия 1: sed "/^$/d"  
    Версия 2: sed "/./!d"

    Всего записей: 2232 | Зарегистр. 17-07-2006 | Отправлено: 15:37 20-11-2009
    Ortios



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Посвящается всем любителям sed,
    Хотите узнать как грамотно публиковать свой адрес в нете?

    Код:
    echo esrctee@amlic.mo | sed -r "s/(.)(.)/\2\1/g" >readme.txt

    Всего записей: 73 | Зарегистр. 24-12-2007 | Отправлено: 23:46 20-11-2009
    egor23



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    CMDOW @ /HID
    @ - текущее окно
    как CMDOW определяет текущее окно?

    Всего записей: 3832 | Зарегистр. 03-11-2003 | Отправлено: 11:00 21-11-2009
    king_stiven

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    egor23
    Title y
    cmdow "y" /HID

    Всего записей: 2232 | Зарегистр. 17-07-2006 | Отправлено: 12:57 21-11-2009
    egor23



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

    Цитата:
    Title y  
    cmdow "y" /HID

    имеете ввиду,  
    что cmdow определяет текущее окно через поиск по заголовку окна?

    Всего записей: 3832 | Зарегистр. 03-11-2003 | Отправлено: 14:38 21-11-2009
    king_stiven

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    egor23
    значит что cmdow скроет окно с заголовком y

    Всего записей: 2232 | Зарегистр. 17-07-2006 | Отправлено: 15:45 21-11-2009
    mrbasic



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите пожалуйста как реализовать задачу построчного чтения текстовогофайла с запоминанием строки. Есть файлс именами компьютеров. есть скрипт позволяющий пинговать компьютеры по списку.
     
    Set /a ind+=1
    for /f " tokens=%ind%" %%s IN (%file_name%) DO (  
    @echo %%s
    Set host_name=%%s
    )
    Ping -n 1 %host_name%>Nul  
     
    If "%ERRORLEVEL%" equ "1" ( Set Stat_us="No connected"
    ) else (
    Set Stat_us="Connected"
    )
     
    но скрипт срабатывает если имена в файле перечислены в строку через пробел. Например
    Computer1 Computer2 Computer3 Computer4
     
    Как можно доработать скрипт чтоб ыон обрабатыват файл со списком вида
    Computer1  
    Computer2  
    Computer3  
    Computer4

    Всего записей: 8 | Зарегистр. 09-02-2006 | Отправлено: 22:46 21-11-2009
    Ortios



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

    Цитата:
    Как можно доработать скрипт


    Код:
    Set /a ind+=1  
    for /f " tokens=*" %%s IN (%file_name%) DO (  
    @echo %%s  
    Set host_name=%%s  
    )
    Ping -n 1 %host_name%>Nul  
     
    If "%ERRORLEVEL%" equ "1" ( Set Stat_us="No connected"  
    ) else (  
    Set Stat_us="Connected"  
    )

    В догонку еще вариант

    Код:
    FOR /F "tokens=*" %%i in (list.txt) do ping -n 1 %%i | (find "TTL=" && echo %%i >> statuslist.txt) || (echo ----------%%i >> statuslist.txt)

    Всего записей: 73 | Зарегистр. 24-12-2007 | Отправлено: 23:44 21-11-2009 | Исправлено: Ortios, 00:03 22-11-2009
    mrbasic



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Пока получилось при помощи утилиты SED
     
    Set /a ind+=1
    for /F "usebackq delims==" %%i IN (`sed %ind%q complist.lst`) DO set host_name=%%i
    @echo %host_name%
    )
    if %host_prev% equ %host_name% GOTO EXIT
    Ping -n 1 %host_name%>Nul  
     
    If "%ERRORLEVEL%" equ "1" ( Set Stat_us="No connected"
    ) else (
    Set Stat_us="Connected"
    )
     
    И все это в цикле с проверкой совпадения предпоследнего и последнего значения параметра host_name.

    Всего записей: 8 | Зарегистр. 09-02-2006 | Отправлено: 00:10 22-11-2009
    Vikkywulf

    BANNED
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Можно ли и как, получить n переменных внутри цикла с целью их дальнейшего использования вне этого цикла? Например:
    for %%i in (*.txt) do (
    set one=%%i
    некие действия
    )
     
    Допустим в папке 5 фалов с расширением *.txt? требуется получить пять переменных -  
    %one%, %two% и т.д. (название переменных не имеет значения, лишь бы каждое было уникальным). Возможно такое или я слишком многого хочу?

    Всего записей: 146 | Зарегистр. 13-09-2007 | Отправлено: 00:51 22-11-2009
    Ortios



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    mrbasic
    Фу, блин, я и не понял что ты хочешь? Сейчас уже сил нет, слишком поздно.

    Всего записей: 73 | Зарегистр. 24-12-2007 | Отправлено: 00:53 22-11-2009 | Исправлено: Ortios, 00:54 22-11-2009
    king_stiven

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

    Код:
    for /f "tokens=*" %%s IN (%file_name%) DO (
        @echo %%s
        Ping -n 1 %%s>Nul
        If "%ERRORLEVEL%" equ "1" (
            Set Stat_us="No connected"
        ) else (
            Set Stat_us="Connected"
        )
    )

    Причём в твоём варианте утебя где то идёт возврат на строчку
    Set /a ind+=1  
    а здесь этого не надо

    Всего записей: 2232 | Зарегистр. 17-07-2006 | Отправлено: 01:02 22-11-2009 | Исправлено: king_stiven, 01:12 22-11-2009
    wolf0425



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

    Цитата:
    Можно ли и как, получить n переменных внутри цикла с целью их дальнейшего использования вне этого цикла?


    Код:
    set n=0
    for %%i in (*.txt) do (
        set /a n+=1
        call set file%%n%%=%%i
        rem чего-то еще
    )
    set file


    Всего записей: 2929 | Зарегистр. 25-04-2007 | Отправлено: 01:18 22-11-2009 | Исправлено: wolf0425, 01:20 22-11-2009
    mrbasic



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

    Всего записей: 8 | Зарегистр. 09-02-2006 | Отправлено: 16:48 22-11-2009
    wolf0425



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

    Цитата:
    for /f "tokens=*" %%s IN (%file_name%) DO (
        @echo %%s
        Ping -n 1 %%s>Nul
        If "%ERRORLEVEL%" equ "1"

    вроде совсем недавно тут разбирали почему If ERRORLEVEL 1 в этом месте работать будет, а If "%ERRORLEVEL%" equ "1" - нет  
     
     
     

    Всего записей: 2929 | Зарегистр. 25-04-2007 | Отправлено: 18:13 22-11-2009 | Исправлено: wolf0425, 18:18 22-11-2009
    king_stiven

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    mrbasic
    Да, я практически никогда не использую %ERRORLEVEL%, только
    If (not) ERRORLEVEL 1

    Всего записей: 2232 | Зарегистр. 17-07-2006 | Отправлено: 21:17 22-11-2009
    VisioNRU

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

    Цитата:
    Доброго времени суток!!!!  
    Нужна помощь! есть инсталлер  его необходимо запускать из батника  
    пишу  
     
    call %CD:~0,2%\путь\setup.exe  
     или  
    start %CD:~0,2%\путь\setup.exe  
    или  
    start .\путь\setup.exe  
     
     в общем  инсталлер стартует, но потом пишет:  
    Необрабатываемое исключение. установка будет прервана.  
     и все. все бы ничего НО. Тут же вручную (мышью, клавой и тд) запускаю этот инсталлер и все ставится.  
     Умные мира сего, подскажите плз...  думаю что проблема в путях, (относительные,постоянные )

    дубль два!!!! неужели нет даже мыслей никаких.

    Всего записей: 14 | Зарегистр. 17-10-2009 | Отправлено: 22:42 22-11-2009
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    VisioNRU
    Попробуй его запускать из его рабочей директории. Т.е сначала перейди в его каталог:

    Код:
     
    pushd "\Path\To\Installer's Folder"
    start setup.exe
    popd
     

     

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 22:51 22-11-2009
    VisioNRU

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

    Всего записей: 14 | Зарегистр. 17-10-2009 | Отправлено: 22:58 22-11-2009
       

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

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 7
    vu1tur (25-01-2010 12:41): лимит страниц, продолжение: http://forum.ru-board.com/topic.cgi?forum=62&topic=19668


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru