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

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

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

vu1tur (04-11-2008 23:07): Задачи на bat-файлах 6  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

Nagual



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

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

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

  • Всего записей: 528 | Зарегистр. 06-01-2006 | Отправлено: 12:28 19-03-2008 | Исправлено: Nagual, 01:02 24-09-2008
    Elroir



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

    Цитата:
    Что-то я не понял каким образом это сделать с помощью choice...

    A я, как выясняется, не понял вопрос. Действительно, с помощью choice.exe нельзя ввести переменную. Эта утилита позволяет вводить только односимвольные значения.

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

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 04:27 13-09-2008
    19w85



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

    Цитата:
    Действительно, с помощью choice.exe нельзя ввести переменную

    Так в батнике возможно реализовать поставленную задачу с помощью чего-нибудь другого или вообще нельзя сделать?
     
     

    Всего записей: 623 | Зарегистр. 20-12-2005 | Отправлено: 05:19 13-09-2008
    stydik



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Возможно ли указать в БАТнике вывод в ЛОГ файл истории перемещения.
    Имеется такой батник:
    @Echo off
    @rar a  D:\copy\ c:\file.rtf
    @echo LOG  %DATE% >> copy.log
     
    В лог мне выводится дата. С помощью какой переменной можно указать путь архивирования, в данном случае это D:\COPY ??? Чтоб в лог файле я наблюдал время запуска и куда архивировался файл. Я понимаю, что можно и самому прописать, но это будет только для моей машины. На других буквы дисков другие. Кто поможет с переменной ???
     
     

    Всего записей: 1509 | Зарегистр. 03-03-2008 | Отправлено: 20:19 13-09-2008
    XoMaiK



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажте, пожалуйста, как из БАТ- файла организовать завершение другого БАТ файла и продолжить выполнение первого? taskkill в этом случае не подходит, поскольку нужно завершить cmd.exe и завершится первый... или я ошибаюсь?

    Всего записей: 150 | Зарегистр. 08-09-2008 | Отправлено: 13:06 15-09-2008
    KapralBel



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    XoMaiK
    Вызывай 2-й батник из 1-го так
    Call second.cmd

    Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 13:20 15-09-2008
    XoMaiK



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    KapralBel, немножко не то, что мне нужно... попробую обрисовать поподробнее...
    Есть несколько БАТ- файлов (сервисов)- они висят в системе... иногда кто- то из них, так сказать, подвисает. Я хочу организовать "рестарт" сразу всех. То есть, мне бы их сначала завершить, а потом, соответственно - запустить.

    Всего записей: 150 | Зарегистр. 08-09-2008 | Отправлено: 15:43 15-09-2008
    KapralBel



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    XoMaiK
    Т.е. в памяти висит несколько выполняющихя батников, которые вызывают друг друга?

    Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 16:08 15-09-2008
    king_stiven

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    XoMaiK
    следующая команда
    taskkill /F /FI "WINDOWTITLE eq 1234" /im cmd.exe /T
    завершит батник 1234.bat
    заголовок 1234 задаётся командой  
    title 1234

    Всего записей: 2167 | Зарегистр. 17-07-2006 | Отправлено: 19:38 15-09-2008 | Исправлено: king_stiven, 06:23 16-09-2008
    XoMaiK



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    king_stiven, благадарю, все работает.
    Есть еще вопрос... Итак, в сами батники я лезть не хочу(прописывать title xxx). Посмотрел, что если запускать батник с ярлыка(руками), то окну батника автоматически передается в заголовок имя ярлыка. Но, если запускать ярлык из батника коммандой start xxx.lnk, имя ярлыка в заголовок окна не передается.
    Собственно сам вопрос, можно ли запустить батник и передать ему имя...
    пробывал так:
    start "test" c:\y.bat
    заголовок выходит такой: test - c:\y.bat
    Хотелось бы отсечь путь из заголовка...
    [off/]Извиняюсь, если слишком мутно написал. [/off]

    Всего записей: 150 | Зарегистр. 08-09-2008 | Отправлено: 12:13 16-09-2008 | Исправлено: XoMaiK, 12:14 16-09-2008
    mistx

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Друзья!
    подскажите плиз команду командной строки,
    которая позволила переименовать все файлы на всем диске F:\  xxxx.doc на xxx.rtf
    интересует не просто переименование, а полное конвертирование в структуру rtf
     
    может есть у кого-нибудь готовый батник?
     
    Заранее благодарю

    Всего записей: 762 | Зарегистр. 13-01-2005 | Отправлено: 17:39 16-09-2008
    KapralBel



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    mistx
    Переименовать не проблема
    А вот сконвертировать - не встречал я такой утилиты
     
    Если только макрос на VBA в самом ворде писать

    Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 17:45 16-09-2008
    king_stiven

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    XoMaiK
    Создай ярлык к  батнику 1234.bat  
    запусти
    start "test"  "Ярлык для 1234.bat.lnk"

    Всего записей: 2167 | Зарегистр. 17-07-2006 | Отправлено: 19:24 16-09-2008 | Исправлено: king_stiven, 19:25 16-09-2008
    bmax

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Люди! Хелп!
    проблемка в следующем:
    есть программка которая следит за изменением папки. Как только в ней (в папке) появляется новый файл запусается батник содержащий такую часть кода -
     
    FOR /f "tokens=*" %%j in ('dir /b /s /a-d "D:\1\*.*"') do set /a count+=1
    IF EXIST D:\1\*.* set "count=0%count%" ELSE
    set "count=00%count%"
    set "count=%count:~-2%"
     
    дальше полученное значение(фактически счетчик) используется для формирования имени файла.  
     
    Так вот если новые файлы поступают с разницей хотя бы в секунду - все ОК. Но стоит только в одну секунду прийти двум файлам - второй получает в качестве имени не истинный count, a random(значение большее на 3, 7, 10, и тд).
     
    Есть варианты побороть эту напасть?
    Пробовал делать задержку при подсчете (пинговал локал адрес) -нулевой результат
     
     
    Добавлено:
    Может быть как вариант сделать проверку на наличие уже запущенного данного бат файла, и в случае положительного ответа сказать второму бат файлу чтобы он ждал антил первый не присвоит имя первому новому файлу и затем продолжал свое выполнение. Но как реализовать это программно ума не приложу. Кто знает, помогите пожалуйста.

    Всего записей: 32 | Зарегистр. 13-09-2006 | Отправлено: 12:18 17-09-2008
    NIKZZZZ



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

    Цитата:
    Есть варианты побороть эту напасть?

     
    Можно подсчитывать к-во файлов в папке до тех пор, пока значение не устаканится - тоесть два последовательных подсчета не дадут одинаковый результат.
     
     

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 13:34 17-09-2008
    bmax

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

    Цитата:
    Можно подсчитывать к-во файлов в папке до тех пор, пока значение не устаканится - тоесть два последовательных подсчета не дадут одинаковый результат.

    Как это? Сделать метку два раза подсчитать количество файлов и если они не равны делаем джамп на метку? подскажите как в батнике метку сделать

    Всего записей: 32 | Зарегистр. 13-09-2006 | Отправлено: 14:14 17-09-2008
    NIKZZZZ



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

    Код:
    set count1=999999999999999
    :_1
    set count=0
    FOR /f "tokens=*" %%j in ('dir /b /s /a-d "D:\1\*.*"') do set /a count+=1
    if %count%==%count1% goto _2
    set count1=%count%
    goto _1
    :_2
    ..........
     


    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 15:19 17-09-2008
    bmax

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

    Всего записей: 32 | Зарегистр. 13-09-2006 | Отправлено: 15:46 17-09-2008
    Stiker



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

    Всего записей: 61 | Зарегистр. 03-06-2006 | Отправлено: 23:46 17-09-2008
    baspav

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Помогите неспециалисту:  
    1. написать командный файл, для соединения с интернетом, который бы в случае ошибки соединения повторял бы его до успешного или определенное количество раз. (Я подставил в батник команду rasdial, соединение идет, но в случае неудачи - просто выкидывает сообщение с кодом ошибки.)  
    2. Хочу запустить два ехешных файла, но батник ждет завершения работы предыдущего. Как сделать так, чтоб он не ждал, а сразу выполнив одну строку перешел к выполнению следующей?  
    3. Как заставить батник ждать определенное время перед запуском следующей строки?  
    Если кто сможет написать такой файл, буду очень признателен.
    Пожалуйста не оставьте без внимания. Ну очень нужно.  
    Спасибо!

    Всего записей: 9 | Зарегистр. 16-09-2008 | Отправлено: 00:14 18-09-2008
    king_stiven

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

    Цитата:
    3. Как заставить батник ждать определенное время перед запуском следующей строки?    

    Stiker

    Цитата:
    возможно создать батник с задержкой загрузки по времени запуска  
    если да то что надо прописать в нём?

    В шапке

    Цитата:
    Делаем паузу в командном файле стандартными средствами Windows  


    Цитата:
    Альтернативные решения »  

    baspav

    Цитата:
    Как сделать так, чтоб он не ждал, а сразу выполнив одну строку перешел к выполнению следующей?  

    START /?

    Всего записей: 2167 | Зарегистр. 17-07-2006 | Отправлено: 07:00 18-09-2008
       

    Страницы: 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-файлах 5
    vu1tur (04-11-2008 23:07): Задачи на bat-файлах 6


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

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.Board
    © Ru.Board 2000-2020

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru