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

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

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

vu1tur (11-09-2007 15:22): продолжаем в теме Задачи на bat-файлах 4  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

vu1tur



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

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

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 11:54 27-04-2007 | Исправлено: Elroir, 03:59 10-09-2007
    igor_andreev

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

    Код:

    @echo off
    for /r /d %%a in (*) do (
      pushd %%a
      echo run %~dp0m.exe in %%a
      popd
    )

    Всего записей: 1704 | Зарегистр. 08-12-2004 | Отправлено: 12:42 07-07-2007
    xitsa



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    2 igor_andreev
    Спасибо!
    Буду теперь думать как это работает

    Всего записей: 103 | Зарегистр. 25-04-2006 | Отправлено: 15:20 07-07-2007
    Simoid



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Доброе время суток. уважаемые жители форума.
     
    Помогите пожалуйста с решением следующей проблеммы.
     
    1) На компьютере есть директория. Допустим C:\Dir
     
    2) В директории создано большое количество папок.
    C:\Dir\[b]XXX]000
    .......
    C:\Dir\[b]XXX]999
     
    Одним словом все папки имеют только числовое название. Но номера ...000-...999 идут не попорядку. То есть, ...001, ...005, ...007 и т.д.
     
    3) Требуется сделать архивы папок. При создании архива установить на него случайный 5+ значный пароль и сохранить название архива и пароль к нему в текстовый файл. Название архива равно названию папки. Пароль к каждой папке разный. Папка может иметь подпапки....
     
    4) Архивировать можно любым следующим архиватором с максимальным сжатием: Rar, UHA, 7Z.
     
     
    Задача, как помоему только для специалистов. Я вторую неделю бьюсь над реализацией с архиватором Rar и пока без результатно.
     
    Помогите пожалуйста.
    Заранее благодарен

    Всего записей: 1008 | Зарегистр. 23-07-2005 | Отправлено: 13:36 08-07-2007
    Maza Faka



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

    Код:
     
    @echo off
    Setlocal enabledelayedexpansion
     for /d %%a in (c:\dir\*) do (
      set pass=!random!
       rar a -ep1 -m5 -p!pass! %%a.rar %%a
        echo %%a.rar>> log.txt
        echo pswd !pass!>> log.txt
        echo.>> log.txt)
     

     
    Архивы будут создаваться в корне каталога "C:\DIR", а log-файл в директории откуда будешь запускать батник.

    Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 15:13 08-07-2007 | Исправлено: Maza Faka, 15:19 08-07-2007
    wolf0425



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

    Цитата:
      set pass=!random!  
    32k разных паролей - всё ж наверно маловато будет...
     

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 08:51 09-07-2007
    Nagual



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    wolf0425
    ну если мало, то очевидно можно сделать так:
    !random!!random!!random! ... и тд пока не посчитаешь нужным

    Всего записей: 528 | Зарегистр. 06-01-2006 | Отправлено: 08:58 09-07-2007
    cluster

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Ребят, помогите справиться с задачкой.
    Нужно преобразовать путь к каталогу и назначить ему переменную. Например:
    Вводим C:\video\AppData
    После преобразования получаем video--AppData Новой переменной нужно присвоить это значение.
     

    Код:
    set _Dest=
    set /p _Dest=Введите путь (ENTER - закрыть):  
    if "%_Dest%" == "" goto _end

    Всего записей: 1720 | Зарегистр. 21-11-2003 | Отправлено: 15:02 09-07-2007
    wolf0425



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    cluster а если введут D:\video\AppData\1\ или \\server\share\video\my\apps - что присваивать переменной?
     

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 15:30 09-07-2007
    cluster

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

    Цитата:
    D:\video\AppData\1\

    video--AppData--1
    Со скриптом буду работать я. Поэтому подстроюсь.
    Сетевых путей точно не будет! А буква диска для преобразования не важна. Переменая с путём сохраняется.
    Скрипт необходим для создания шарингов.
     

    Код:
    set _Dest=  
    set _Fold=  
    set /p _Dest=Введите путь (ENTER - закрыть):  
    rem ex. C:\video\AppData
    if "%_Dest%" == "" goto _end  
     
    set /p _Fold=Введите имя каталога:  
    rem ex. Clips
     
    <преобразование>
     
    cd /d %_Dest%
    mkdir "%_Fold%"
    net share "%new_var%"="%_Dest%\Clips" /cache:Programs /grant:Все,full

    Для данного примера команда в итоге должна быть такой
    net share "video--AppData--Clips$"="C:\video\AppData\Clips" /cache:Programs /grant:Все,full

    Всего записей: 1720 | Зарегистр. 21-11-2003 | Отправлено: 16:39 09-07-2007 | Исправлено: cluster, 16:44 09-07-2007
    NIKZZZZ



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

    Цитата:
    set _Dest=  
    set _Fold=  
    set /p _Dest=Введите путь (ENTER - закрыть):  
    rem ex. C:\video\AppData
    if "%_Dest%" == "" goto _end  
     
    set /p _Fold=Введите имя каталога:  
    rem ex. Clips
     
    set new_var=%p_Fold:~3%
    set new_var=%new_var:\=--%
     
    cd /d %_Dest%
    mkdir "%_Fold%"
    net share "%new_var%"="%_Dest%\Clips" /cache:Programs /grant:Все,full  


    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 17:18 09-07-2007
    uart78

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

    Помогите пожалуйста. Нужно сделать батник , который будет получать  внешний IP(например отсюда http://www.showmyip.com/xml/  или по ipconfig ) и писать его в файл c:\\ip.txt  в формате:
    новая_строка ip дата  
     
     

    Всего записей: 21 | Зарегистр. 15-08-2005 | Отправлено: 19:06 09-07-2007
    cluster

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

    Всего записей: 1720 | Зарегистр. 21-11-2003 | Отправлено: 19:13 09-07-2007
    NIKZZZZ



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

    Цитата:
    Нужно сделать батник , который будет получать  внешний IP


    Код:
    for /f "tokens=1* delims=:. " %%i in ('ipconfig ^| find "IP"') do set "ip_address=%%j"
    echo %ip_address%>c:\ip.txt
     

     

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 20:02 09-07-2007 | Исправлено: NIKZZZZ, 20:05 09-07-2007
    wolf0425



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

    Цитата:
    батник , который будет получать  внешний IP

    в случае модема c NAT - ipconfig помочь узнать внешний адрес не может, но спросить его снаружи - никаких проблем нет. Заодно можно проверить и доступность снаружи по этому IP.
    а вот лог я себе чуть расширил, ну и тестилка другая...
     

    Код:
    wget -s -O test.lst http://www.utorrent.com/testport.php?port=21 2>nul
    if errorlevel 1 echo NOT CONNECTED %date% %time:~0,8% >>c:\\ip.txt && goto :_del
    for /f "eol=# tokens=1,2,3,4,5,6,7,8* delims=. " %%a in ('type test.lst ^| find "span"') do echo %%e.%%f.%%g.%%h %date% %time:~0,8% >>c:\\ip.txt
    :_del
    del test.lst

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 21:40 09-07-2007 | Исправлено: wolf0425, 21:52 09-07-2007
    igor_andreev

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    wolf0425
    Вот чтоб такими вычислениями не заниматься

    Цитата:
    for /f "eol=# tokens=1,2,3,4,5,6,7,8* delims=. " %%a in ('type test.lst ^| find "span"') do echo %%e.%%f.%%g.%%h %date% %time:~0,8% >>c:\\ip.txt  

    я для себя нарыл отличный адрес для wget:
    http://www.netikus.net/show_ip.html
    обычный текст, ни тегов html, ничего, кроме ip-шника  

    Всего записей: 1704 | Зарегистр. 08-12-2004 | Отправлено: 22:02 09-07-2007
    uart78

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    NIKZZZZ wolf0425 igor_andreev
    Спасибо, помогло!

    Всего записей: 21 | Зарегистр. 15-08-2005 | Отправлено: 00:35 10-07-2007 | Исправлено: uart78, 00:38 10-07-2007
    cluster

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

    Цитата:
    @echo set objOU = objDomain.Create("organizationalUnit", "OU=" & strOrgUnit) >> temp.vbs

    красный символ не позволяет записать строку в файл. как можно побороть?

    Всего записей: 1720 | Зарегистр. 21-11-2003 | Отправлено: 15:53 10-07-2007
    KapralBel



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

    Код:
     @echo set objOU = objDomain.Create("organizationalUnit", "OU=" ^& strOrgUnit) >> temp.vbs

    Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 15:56 10-07-2007
    Nagual



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    задача такая, удалить 18 строк из исходного файла
     
    @echo off
    chcp 1251>nul
    set input=input.txt
    set output=output.txt
    echo.>%output%
    for /f "skip=18 delims=" %%a in ('"type "%input%""') do echo %%a>>%output%
     
    этот код подходит для простых текстовых файлов
    как добиться того, чтобы переводы строк оставались?
    может есть более продвинутое решение этой задачи? например, для работы с файлами html и т.д.
    если текст содержит символы перенаправления, то начинаются всевозможные глюки и т.д. ...
    да и бинарники думается этот код не сможет обработать...

    Всего записей: 528 | Зарегистр. 06-01-2006 | Отправлено: 01:55 11-07-2007
    Maza Faka



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Nagual
    Смотри в сторону "SED", вот только с синтаксисом этой утилиты я не знаком
    А встроенными средствами, можно с помощью "MORE", например: MORE +17 input.txt> output.txt, выведет в файл все строки, пропустив первые 17 строк.

    Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 08:18 11-07-2007 | Исправлено: Maza Faka, 08:19 11-07-2007
       

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

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 3
    vu1tur (11-09-2007 15:22): продолжаем в теме Задачи на bat-файлах 4


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru