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

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

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

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

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    soft111
     
    @echo off
    for %%A in (C:\test\*.txt) do call:_1 %%A
    goto :eof
     
    :_1
    1>nul 2>nul for /f "tokens=*" %%i ('type %1') do (echo %%i>C:\test\%~n1_.txt && del /q %1 && ren C:\test\%~n1_.txt %~nx1)
    goto :eof
     
    p.s.
    только сначала протестируй скрипт и  
    Важно: копируя батник через буфер обмена из форума не забывайте удалять пробелы в конце каждой строки, т.к. в некоторых случаях из-за этого программа будет работать неправильно!!!  
     
    Добавлено:
    soft111

    Цитата:
    <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>

    это не url, а html-код

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



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Всем привет!
     
    Скажите пожалуйста, как создать бат-файл который будет делать слудующее:
    1.Включать и ставить в режим АВТО службу "Планировщик заданий"
    2.Бат-файл, который перезагружает копм (shutsown -r -f -t 10 c "Good buy, loser!") копируется в автозагрузку
    3.В планировщике заданий ставится запустить этот батник в определенное время или через период времени.
     
    Или какой-нить другой вариант, который, скажем, через 10 дней начнет перезагружать комп при старте системы

    Всего записей: 143 | Зарегистр. 18-09-2009 | Отправлено: 18:57 09-11-2009
    soft111

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    mugil_cephalus
     
    я знаю, что это html, вот как раз с текстового файла с таким содержанием нужно выдернуть url https://login.site.com/app/signup/confirm.cgi?u=name1&uid=2074563

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

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

    Цитата:
    По поводу второго вопроса строка выглядит так: <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

     
     
    @echo off
    for %%A in (C:\test2\*.txt) do call:_1 %%A
    goto :eof
     
    :_1
    1>nul 2>nul for /f "tokens=4* delims=:" %%a ('"type %1"') do (echo https:%%a%%b>C:\test2\%~n1_.txt && del /q %1 && ren C:\test2\%~n1_.txt %~nx1)
    goto :eof
     
     
    если код верный, должен удалиться первый url и остаться второй
     
     
    Добавлено:
    soft111

    Цитата:
    я знаю, что это html,  

    я думал задача будет полегче - с url'om

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

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    mugil_cephalus
     
    У меня что то не первый не второй скрипт не работают, вообще ничего не делают, все пробелы удалил, все файлы лежат в папках test и test2, в чем может быть причина?

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

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

    Цитата:
    я знаю, что это html, вот как раз с текстового файла с таким содержанием нужно выдернуть url https://login.site.com/app/signup/confirm.cgi?u=name1&uid=2074563

    только щас прочитал твой последний комент - тогда скрипт неверный:
    он удаляет <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> то есть html-код  
     
    Добавлено:
    soft111
    про задачу №1
    покажи листинг (поставь echo on и удали 1>nul 2>nul)
    echo on  
    for %%A in (C:\test\*.txt) do call:_1 %%A  
    goto :eof  
     
    :_1  
    for /f "tokens=*" %%i ('type %1') do (echo %%i>C:\test\%~n1_.txt && del /q %1 && ren C:\test\%~n1_.txt %~nx1)  
    goto :eof

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

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Вот результат выполнения первой задачи, во 2 задаче почти та же ошибка: Непредвиденное появление: ('"type C:\test2\1.txt"').
     
     

    Цитата:
    C:\Documents and Settings\Администратор>C:\test\1111.bat
     
    C:\Documents and Settings\Администратор>echo on
     
    C:\Documents and Settings\Администратор>for %A in (C:\test\*.txt) do call:_1 %A
     
     
    C:\Documents and Settings\Администратор>call:_1 C:\test\1.txt
    Непредвиденное появление: ('type.
     
    C:\Documents and Settings\Администратор>for /f "tokens=*" %i ('type C:\test\1.tx
    t') do (echo %i>C:\test\1_.txt && del /q C:\test\1.txt && ren C:\test\1_.txt 1.t
    xt)
     
    C:\Documents and Settings\Администратор>
     

    Всего записей: 25 | Зарегистр. 05-11-2009 | Отправлено: 19:37 09-11-2009 | Исправлено: soft111, 19:40 09-11-2009
    mugil_cephalus

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    soft111
    нашел ошибку (знал бы где упасть - подстелил соломку)
     
    Добавлено:
    @echo off
    for %%A in (C:\test\*.txt) do call:_1 %%A
    goto :eof
     
    :_1
    1>nul 2>nul for /f "tokens=*" %%i in ('type %1') do (echo %%i>C:\test\%~n1_.txt && del /q %1 && ren C:\test\%~n1_.txt %~nx1)
    goto :eof

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

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Теперь пишет: Непредвиденное появление: for %i in

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

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

    Цитата:
    1.Включать и ставить в режим АВТО службу "Планировщик заданий"  
    2.Бат-файл, который перезагружает копм (shutsown -r -f -t 10 c "Good buy, loser!") копируется в автозагрузку  
    3.В планировщике заданий ставится запустить этот батник в определенное время или через период времени.

    1 sc /?
    2 reg add /?
    3 SCHTASKS /Create /?
     
    Добавлено:
    soft111

    Цитата:
    Теперь пишет: Непредвиденное появление: for %i in  

    что, так дословно и пишет???
    покажи листинг (так вроде не должен писать)
     
    echo on  
    for %%A in (C:\test\*.txt) do call:_1 %%A  
    goto :eof  
       
    :_1  
    for /f "tokens=*" %%i in ('type %1') do (echo %%i>C:\test\%~n1_.txt && del /q %1 && ren C:\test\%~n1_.txt %~nx1)  
    goto :eof

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

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

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

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

    Цитата:
    Последний код вставил, все отработал без ошибок, но в файле он пустую строку не удалил, а добавил в конце первой строки еще пробел.

    1) интересно...
    F:\Documents and Settings\admin>for /?
    Выполнение указанной команды для каждого файла набора.
     
    .............................  
        Набор содержит имена одного или нескольких файлов, которые по очереди
        открываются, читаются и обрабатываются. Обработка состоит в чтении
        файла, разбивки его на отдельные строки текста и выделения из каждой
        строки заданного числа подстрок (в том числе нуля). Затем найденная
        подстрока используется в качестве значения переменной при выполнении
        основного тела цикла. По умолчанию ключ /F выделяет из каждой строки файла
        первое слово, очищенное от окружающих его пробелов. Пустые строки
        в файле пропускаются.
    Необязательный параметры "ключи" служит для
        переопределения заданных по умолчанию правил обработки строк. Ключи
        представляют собой заключенную в кавычки строку, содержащую указанные
        параметры. Ключевые слова:
     
     .........................................
     
    2) покажи листинг (можешь text, если он приватный, "заретушировать", типа ... echo text>C:\test.......)

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

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    я код программы не изменяю, оставляю как есть и пути тоже сохраняются C:\test
     
    В текстовом файле написано:
     

    Цитата:
    slovo
     

     
    После отрабатывания батника, он добавляет еще к slovo пробел.

    Всего записей: 25 | Зарегистр. 05-11-2009 | Отправлено: 20:35 09-11-2009 | Исправлено: soft111, 20:36 09-11-2009
    mugil_cephalus

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    soft111
    сделал себе такое же - строку не убрал, зато "нарисовал" еще 130 пробелов

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

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

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

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    soft111
     
     
    F:\Documents and Settings\admin>c:\for31.bat
     
    F:\Documents and Settings\admin>echo on
     
    F:\Documents and Settings\admin>for %A in (C:\test\*.txt) do call:_1 %A
     
    F:\Documents and Settings\admin>call:_1 C:\test\5.txt
     
    F:\Documents and Settings\admin>for /F "tokens=*" %i in ('type C:\test\5.txt') do (echo %i  1>C:\test\5_.txt  && del /q C:\test\5.txt   && ren C:
    \test\5_.txt 5.txt )
     
    F:\Documents and Settings\admin>(echo _text_  1>C:\test\5_.txt  && del /q C:\test\5.txt   && ren C:\test\5_.txt 5.txt )
     
    F:\Documents and Settings\admin>goto :eof
     
    F:\Documents and Settings\admin>goto :eof
     
    F:\Documents and Settings\admin>
     
     
     
    теперь аналогично - плюс пробел, строку не убрал
    (посмотрю листинг - синтаксически вроде верно составил код - буду искать что ему не нравится - ведь судя по справке он должен пустую строку пропускать)
     
    причем пробел то можно сделать, чтоб не рисовал его, но почему строку пустую не убирает???

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

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    mugil_cephalus, у меня тоже такой результат выполнения программы, никаких ошибок, но и задачу свою не выполняет (((

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



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

    Всего записей: 147 | Зарегистр. 15-02-2008 | Отправлено: 21:48 09-11-2009
    mugil_cephalus

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    soft111
    столько мучений и все напрасно
    может кто знает уловку, но пока тупик (похоже нет способов выдрать строку)
    я попробовал 2 способа:
    D:\>(echo hi)>1
     
    D:\>1>x echo hi
     
    в обоих случаях в каждом файле добавляется лишняя пустая строка

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