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

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

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

    Цитата:
    A вoзмoжнo ли cдeлaть тaк, чтoбы эти измeнeния вcтупaли в cилу нe cpaзу пocлe зaпуcкa bat, a чepeз кaкoe-тo вpeмя, cкaжeм чepeз 5 днeй? Иными cлoвaми, мoжнo ли нaпиcaть зaдaчу нa bat, зaключaющуюcя в измeнeниии peecтpa «пo pacпиcaнию»?  
    Cпacибo.

    про отсрочку изменения реестра впервые слышу
    создай задание, запускающее bat со скриптом внесения изменений в реестр, через 5 дней
    файл job.bat создает задание (см. SCHTASKS /Create) на файл reg.bat (см. reg add) - через 5 дней запускается reg.bat (в последнюю строчку добавь код удаления задания job.bat, чтоб больше не запускалось через каждые следующие 5 дней)
     
    Добавлено:
    mouser

    Цитата:
    или хотя бы в xml файл

    вставлять в xml? через echo > file.xml (только добавь в начале скрипт, что это есть xml)
     
    Добавлено:

    Цитата:
    Цитата:Можно ли както это автоматически закидывать данные в Word или Excel?  
     
    Windows Script Host по твоей задаче плачет
    - цитата igor_andreev    
    http://forum.ru-board.com/topic.cgi?forum=62&topic=10650&start=520

    Всего записей: 1072 | Зарегистр. 07-09-2009 | Отправлено: 11:26 07-11-2009
    mouser

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    burat1no666
    _http://onestyle.com.ua/txt.php?u=147
     
    Добавлено:
    mugil_cephalus
    echo .... дело не хитрое,
     
    повторюсь

    Цитата:
    как в файл Excel добавить с командной строки текст
     
    пример:
    если в A2 пусто вставить значение %время% иначе вставить в A3

     
    то есть echo не вставит в определённую строку значение.
    речь идёт о заранее подготовленном списке

    Всего записей: 800 | Зарегистр. 10-11-2006 | Отправлено: 11:49 07-11-2009
    mugil_cephalus

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    mouser
    про *.xls и *.doc альтернативного  igor_andreev не встречал в Задачи на bat-файлах    
    а с *.xml можно работать через notepad, - вот я и подумал, что в *.txt же спокойно можно менять строки и через sed и через for
     
    Добавлено:
    soft111
    for /f "tokens=*" %%A ('type 1.txt') do echo %%A>1_.txt && ren 1_.txt 1.txt - это для одного файла, а для всех - зависит от их местонахождения

    Всего записей: 1072 | Зарегистр. 07-09-2009 | Отправлено: 12:12 07-11-2009 | Исправлено: mugil_cephalus, 12:13 07-11-2009
    mouser

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

    Всего записей: 800 | Зарегистр. 10-11-2006 | Отправлено: 12:42 07-11-2009
    mugil_cephalus

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    mouser
    http://forum.ru-board.com/topic.cgi?forum=62&topic=17154&start=1320#16
     
    Добавлено:
    soft111

    Цитата:
    2) Еще один вопрос, в текстых файлах в одну строку написаны 2 ссылки одинаковые, как можно с помощью bat файла оставить только один url  

    покажи url полностью как есть , то есть всю строку с двумя url'ami без редактирования - (можешь в url , если не хочешь афишировать, заменить в имя domain'a , а остальной код оставь как есть - он же наверное не приватный, но меняй на аналогичное - латиницу на латиницу, цифры на цифры - например http://www.google.ru/2009/ на http://www.site.ru/2009/ )  
     
    не.. лучше если у тебя где-то так:
    http://forum.ru-board.com/topic.cgi?forum=62&topic=17154&start=1320#16 http://forum.ru-board.com/topic.cgi?forum=62&topic=17154&start=1320#16
     
    ( [?]  - не должно быть, это конвертация кода софтом сайта, должно быть ...#16 пробел http... )
     
    то поменяй так:  
    http://forum.site-site.com/topic.cgi?forum=62&topic=17154&start=1320#16 http://forum.site-site.com/topic.cgi?forum=62&topic=17154&start=1320#16

    Всего записей: 1072 | Зарегистр. 07-09-2009 | Отправлено: 12:52 07-11-2009 | Исправлено: mugil_cephalus, 13:44 07-11-2009
    mouser

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

    Код:
     
    <?xml version="1.0" encoding="windows-1251" standalone="no" ?>
    <Root>
      <ExpenseItem>
        <Name>Item1</Name>
        <Time>00:15</Time>
        <Time1>00:20</Time1>
      </ExpenseItem>
      <ExpenseItem>
        <Name>Item2</Name>
        <Time>02:15</Time>
        <Time1>02:20</Time1>
      </ExpenseItem>
    </Root>
     

     
    если в Time пусто вставить значение %время% иначе вставить в Time1 при этом нужно учитывать Item1 и Item2

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

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Не пойму как загрузить файл на ipicture, из командной строки
     
    Минимальный html

    Код:
    <form action="http://ipicture.ru/Upload/" method="post" enctype="multipart/form-data" name="upload">
    <input type='checkbox' name="ignorAllCheck" CHECKED>
    <input type='hidden' name='method' value='file'>
    <input type='file' name='userfile'>
    <input type="submit">
    </form>

     
    Так понял нечто вроде
    curl -F "ignorAllCheck=on;method=file;userfile=9.png" http://ipicture.ru/Upload/ >log.htm
     
     
    Но что-то не так.

    Всего записей: 7009 | Зарегистр. 31-08-2008 | Отправлено: 17:56 07-11-2009 | Исправлено: ndch, 15:16 08-11-2009
    Alexandrr555

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Помогите пожалуйста студенту первокурснику
     
     
    Задание 3.
    Используя команды пакетной обработки, создать командный файл для того, чтобы:
     
    1.создает файл, имя которого задано первым параметром пакетного файла
    2.спрашивает у пользователя, переименовать ли файл (новое имя задано во втором параметре)
    3.в зависимости от ответа – переименовывает файл
     
     
     
     
     
     
    Задание 4.
    Создать пакетный файл, который:
     
    1.спрашивает у пользователя, создать ли каталог, имя которого задано первым параметром пакетного файла. Если пользователь отвечает положительно, создает каталог, если отрицательно – спрашивает у пользователя, нужно ли переименовать текущий (не корневой) каталог (новое имя задано во втором параметре)  
    2.спрашивает у пользователя, создать ли в каталоге, имя которого задано первым параметром, текстовый файл, имя которого задано вторым параметром пакетного файла.
    3.в зависимости от ответа пользователя, создает файл
     

    Всего записей: 2 | Зарегистр. 08-11-2009 | Отправлено: 20:52 08-11-2009
    menl

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    помогите кто может, есть такая задача
    в папке файлы с расширением .264 и .m4a к примеру 5s.264, 6s.264, 7s.264... 5s T80 2_0ch 192Kbps DELAY 0ms.m4a, 6s T80 2_0ch 192Kbps DELAY 0ms.m4a...
    общее у них 5s, 6s, 7s, 8s...
    надо запустить цикл такого типа  
    "D:\minep\me_gui\tools\Yamb\MP4Box.exe" -add "5s.264:fps=23.976" -add "5s T80 2_0ch 192Kbps DELAY 0ms.m4a#1" -tmp "E:\\temp\\" "H:\Temp\5s.mp4"
     
    у меня не получается сделать подстановку в первый параметр 5s.264 во второй параметр 5s T80 2_0ch 192Kbps DELAY 0ms.m4a вместе
    пробовал  
    for %%a in (*.264) do for %%b in (*.m4a) do "D:\minep\me_gui\tools\Yamb\MP4Box.exe" -add "%%a:fps=23.976" -add "%%b#1" -tmp "E:\\temp\\" "H:\Temp\%%a.mp4"
     
    проблема в том что параметр %%a после 1 цикла не обновляется на сл файл!!! параметр %%a всегда один и тот же

    Всего записей: 8 | Зарегистр. 28-07-2007 | Отправлено: 22:41 08-11-2009 | Исправлено: menl, 00:04 09-11-2009
    king_stiven

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

    Цитата:
    5s, 6s, 7s, 8s

    То есть как миимум 2 первых знака в имени у них одинаковое?
     
    Добавлено:
     
    menl
    for %%a in (*.264) do (
        "D:\minep\me_gui\tools\Yamb\MP4Box.exe" -add "%%a:fps=23.976" -add "%%~na T80 2_0ch 192Kbps DELAY 0ms.m4a#1" -tmp "E:\\temp\\" "H:\Temp\%%~na.mp4"
    )

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

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    имеется 3 файла 1.txt 2.txt 3.txt и xml

    Код:
     
    <?xml version="1.0" encoding="windows-1251" standalone="no" ?>
    <Root>
      <ExpenseItem>
        <Name>Item1</Name>
        <Time>%1%</Time>
      </ExpenseItem>
      <ExpenseItem>
        <Name>Item2</Name>
        <Time>%2%</Time>
      </ExpenseItem>
      <ExpenseItem>
        <Name>Item3</Name>
        <Time>%3%</Time>
      </ExpenseItem>
    </Root>  

     
    как засунуть в xml данные из файлов в определённые места где уже проставлены переменные

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

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

    Всего записей: 2232 | Зарегистр. 17-07-2006 | Отправлено: 10:30 09-11-2009
    mouser

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    king_stiven
    паралельно чем но нужно чтоб данные из определенных файлов попали в определенные места ... на xml вроде видно куда должно попасть

    Всего записей: 800 | Зарегистр. 10-11-2006 | Отправлено: 10:36 09-11-2009
    soft111

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    mugil_cephalus Спасибо за помощь!
     
    1) файлы в которых надо удалить пустую строку находятся в С:\test
     
    По поводу второго вопроса строка выглядит так: <a href="https://login.site.com/app/signup/confirm.cgi?u=name1&uid=2074563"><font face="verdana,helvetica" color="#FF6905" style="font-size: 11px">https://login.site.com/app/signup/confirm.cgi?u=name1&uid=2074563</font></a><br><br> (все написано в одну строку, напоминаю, нужно оставить только 1 url, сайт не меняется, меняются только name1 и 2074563, причем name1 может быть больше 5 символов. Текстовые файлы распологаются, допустим в папке C:\test2

    Всего записей: 25 | Зарегистр. 05-11-2009 | Отправлено: 11:11 09-11-2009
    mouser

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    с последним разобрался ... а вот как на счёт того что если сужествует текст в определённом месте >> сделать ***

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

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

    Цитата:
    for /f %%A in ('net use...') do call :_1 %%A
     
    :_1
    if "%1" equ "20"
    if "%1" equ "67"
    if "%1" equ "1057"
    goto :eof  

     
     
    Это уже ближе к истине, но выхлоп выдается в виде
     
    "Системная ошибка 1326.
     
    Вход в систему не произведен: имя пользователя или пароль не опознаны."
     
    То есть по идее нужен 3-й token, но не пойму как его выделить:
     

    Цитата:
     
    for /f "eol=. tokens=3 delims= " %%A in ('net use \\192.168.0.10\c$ 111 /USER:admin') do call :_1 %%A
     
    :_1
    echo test %1
    goto :eof
     

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

    Цитата:
     
    "Системная ошибка 1326.
     
    Вход в систему не произведен: имя пользователя или пароль не опознаны."
     

     
    И еще вопрос можно ли из вывода убить все строки кроме первой ?

    Всего записей: 7 | Зарегистр. 14-03-2008 | Отправлено: 13:41 09-11-2009 | Исправлено: bigfoothart, 13:49 09-11-2009
    Maqentaer



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

    Цитата:
    И еще вопрос можно ли из вывода убить все строки кроме первой ?

    можно примерно так.

    Код:
    for .... do do call :_1 %%A &goto ext
    :ext
     

    Всего записей: 71 | Зарегистр. 18-05-2008 | Отправлено: 15:00 09-11-2009 | Исправлено: Maqentaer, 15:02 09-11-2009
    Alexandrr555

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Помогите пожалуйста студенту первокурснику  
     
     
    Задание 3.  
    Используя команды пакетной обработки, создать командный файл для того, чтобы:  
     
    1.создает файл, имя которого задано первым параметром пакетного файла  
    2.спрашивает у пользователя, переименовать ли файл (новое имя задано во втором параметре)  
    3.в зависимости от ответа – переименовывает файл  
     
     
     
     
     
     
    Задание 4.  
    Создать пакетный файл, который:  
     
    1.спрашивает у пользователя, создать ли каталог, имя которого задано первым параметром пакетного файла. Если пользователь отвечает положительно, создает каталог, если отрицательно – спрашивает у пользователя, нужно ли переименовать текущий (не корневой) каталог (новое имя задано во втором параметре)  
    2.спрашивает у пользователя, создать ли в каталоге, имя которого задано первым параметром, текстовый файл, имя которого задано вторым параметром пакетного файла.  
    3.в зависимости от ответа пользователя, создает файл

    Всего записей: 2 | Зарегистр. 08-11-2009 | Отправлено: 15:49 09-11-2009
    ndch

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Alexandrr555
    Сам за это время мог бы освоить.
    Иди "скопировать" - это обсуждалось.
    Зачем второй раз постишь ?
     
    Тебе под xp ?
     

    Цитата:
    создает файл

    Какого содержимого ?
     
    Задание 3.

    Код:
    echo. > %1
    Set /p var="Переименовать ? (y) "  
    if %var%==y ren %1 %2

     
     
    Задание 4
     

    Код:
     
    Set /p var="Сделать каталог %1 (y/n [да/нет]) "
    if %var%==y mkdir %1
    if %var%==n goto step_2
     
    goto step_3
     
    :step_2
    Set /p var2="переименовать текущий каталог в %2"
    if %var2%==y echo "А это ничего что в здесь работает пакетный файл ?"
     
    :step_3
    Set /p var3="создать текстовый файл %1\%2.txt (y/n [да/нет]) "
    if %var3%==y
    echo. > %1\%2.txt
     

     
    Добавлено:
    Если выводит "кракозямболы" - первой строкой
    @CHCP 1251 > nul
    Хотя этого в задании нет.

    Всего записей: 7009 | Зарегистр. 31-08-2008 | Отправлено: 16:46 09-11-2009 | Исправлено: ndch, 18:21 09-11-2009
    mugil_cephalus

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    bigfoothart
    а чего пишет?
    запусти в консоли батник со скриптом:
    echo on
    for /f "eol=. tokens=3 delims= " %%A in ('net use \\192.168.0.10\c$ 111 /USER:admin') do echo _%%A_
    и покажи листинг (можешь подретушировать листинг, если в нем будет приватная инфа)
    кстати, можно без eol и delims: "tokens=3"
     
    я думаю, наверное, нужно перед циклом вставить chcp 1251 и еще вот так попробуй - for /f "tokens=3" %%A in ('"net use \\192.168.0.10\c$ 111 /USER:admin"') do echo _%%A_
     
     
     

    Цитата:
    И еще вопрос можно ли из вывода убить все строки кроме первой ?

    меня тоже интересует этот вопрос, но пока на готовое решение не натыкался
    Но если у тебя будет проверка в процедуре

    Цитата:
    :_1  
    if "%1" equ "20"  
    if "%1" equ "67"  
    if "%1" equ "1057"  
    goto :eof

    то 3-ие tokens с последующих строк не помешают

    Всего записей: 1072 | Зарегистр. 07-09-2009 | Отправлено: 17:59 09-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