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

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

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

vu1tur (09-01-2011 11:53): лимит страниц, продолжение — http://forum.ru-board.com/topic.cgi?forum=62&topic=22143  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

vu1tur



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

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

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

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 17:45 04-09-2010 | Исправлено: Accessor, 18:04 28-09-2010
    praidik



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

    Всего записей: 39 | Зарегистр. 15-11-2010 | Отправлено: 18:16 20-11-2010
    smirnvlad

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    praidik
    Schtasks.exe /Create /? |more
     
    например, запуск каждые 2 часа начиная с 1:35
    Schtasks.exe /create /SC HOURLY /MO 2 /ST 01:35:00 /TR "программа" /RU "SYSTEM" /TN "название"

    Всего записей: 417 | Зарегистр. 31-03-2009 | Отправлено: 18:25 20-11-2010
    praidik



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    smirnvlad всё верно?
    Schtasks.exe /create /SC HOURLY /MO 2 /ST 01:35:00 /TR "D:\моя прога" /RU "SYSTEM" /TN "name_program"
    Спасибо!

    Всего записей: 39 | Зарегистр. 15-11-2010 | Отправлено: 18:38 20-11-2010
    smirnvlad

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

    Цитата:
    еще бы ключик чтобы окно ворда не открывалось (т.е скрытым было)

    такого ключика насколько я знаю нет, но вот на VBScript'e можно сделать скрытым
     
    praidik
    программа будет запускаться каждые 2 часа начиная с 1:35 от имени системы и окно её видно не будет
    после выполнения команды можно посмотреть Назначенные задания
    ещё можно создать задание, в планировщике, вручную и посмотреть все необходимые параметры, для его создания, в файле tasks.list.txt
    Schtasks.exe /query /FO LIST /V > tasks.list.txt

    Всего записей: 417 | Зарегистр. 31-03-2009 | Отправлено: 19:00 20-11-2010
    Demon L



    Lite FSB
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Господа – гуру помогите решить задачку:
    Есть папка (C:\test) в нее падают текстовые файлики парами (123456789.tkt и 123456789.txs) и файл «C:\base.txt» в нем в столбик перечислено, что нужно искать (одно значение на одну строку).
    Примерно так:
    Hdbjdmk
    Hgj49cdkrp0
    Hsdey568dmk
    123445566
    итд
    Требуется проверить содержимое одного файла (скажем 123456789.tkt) выяснить есть ли там что либо из «base.txt». И если есть – скопировать этот файл и его пару в папку C:\OUT а также все обработанные файлы переместить в C:\OUT_ALL
    Таким образом в C:\OUT_ALL должны быть все файлы а в C:\OUT только те в которых есть значения из C:\base.txt
     
    заранее спасибо за помощь!

    Всего записей: 372 | Зарегистр. 24-07-2003 | Отправлено: 19:21 20-11-2010 | Исправлено: Demon L, 19:22 20-11-2010
    bdfy

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

    Цитата:
    такого ключика насколько я знаю нет, но вот на VBScript'e можно сделать скрытым

    примером не поделитесь ? задачу я выше описывал - нужно распечатывать все pdf|doc|docx и т.п из папки подряд.

    Всего записей: 977 | Зарегистр. 21-04-2004 | Отправлено: 20:02 20-11-2010
    Free_Soft



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    bdfy
    del
    а, пардон, это про Ворд было...

    Всего записей: 1517 | Зарегистр. 19-04-2010 | Отправлено: 20:21 20-11-2010 | Исправлено: Free_Soft, 20:28 20-11-2010
    smirnvlad

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    bdfy
    насчет "и т.п" не знаю, а pdf,doc,docx так
    VBScript
     
    а чем не устраивает печать из проводника

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

    если упорядочить по имени, выделить последний файл, нажать shift, выделить первый файл (выделятся все), отпустить shift, затем правой кнопкой печать, у меня по порядку встают в очередь

    Всего записей: 417 | Зарегистр. 31-03-2009 | Отправлено: 22:50 20-11-2010
    bomzzz



    Запрет на пост
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Free_Soft
    http://narod.ru/disk/82605001/%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE%20%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%87%D0%B8%D0%BA%D0%B0%20%D0%BD%D0%B0%20WSH%202.0.djvu.html

    Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 23:47 20-11-2010
    praidik



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    У меня назрел ещё 1 вопрос...
    Можно ли скрыть чёрную панель которая выскакивает при запуске bat?
    Я столкнулся с такой проблемой... пробывал компилировать... с "Quick Batch File Compiler" у меня полученный файл шёл как троян(Dr. Web палил)... С "Bat_To_Exe_Converter.exe" при запуска компилированного файла комп подтормаживал...  
    Может есть какая то утилита для решения этой проблемы?

    Всего записей: 39 | Зарегистр. 15-11-2010 | Отправлено: 10:57 21-11-2010
    Free_Soft



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    praidik
    Из компиляторов лучше на сегодняшний день тот же
    Цитата:
    "Bat_To_Exe_Converter.exe"

    Тормозит не комп, а антивирь, который его "слушает". Скрыть батник можно многими способами, напр, запустить его с помощь VBS скрипта, или использовать специальные утилиты.
     
    Добавлено:
    Это VBS-скриптик

    Код:
    Set WSHShell = CreateObject("WScript.Shell")
    WSHShell.Run "%comspec% /c My.bat", 0, False

    Утилит полно в шапке

    Всего записей: 1517 | Зарегистр. 19-04-2010 | Отправлено: 12:42 21-11-2010
    praidik



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Free_Soft
    Огромное спасибо, скрипт это то что нужно! (^_^)

    Всего записей: 39 | Зарегистр. 15-11-2010 | Отправлено: 13:02 21-11-2010
    lorents



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Добрый день!
    Подскажите, пожалуйста, как сделать, если в коде произошла ошибка, чтобы bat-файл продолжал работать?

    Код:
    call :cryopng "%%~dpni_cryopng_0.png" "%%~dpni_cryopng_1.png" "%%~dpni_cryopng_2.png" "%%~dpni_cryopng_3.png" "%%~dpni_cryopng_4.png" "%%~dpni_cryopng_5.png" "%%~fi"
     
    :cryopng
    move /y %1 %7
    if %~z2 lss %~z7 (move /y %2 %7 ) else del %2
    if %~z3 lss %~z7 (move /y %3 %7 ) else del %3
    if %~z4 lss %~z7 (move /y %4 %7 ) else del %4
    if %~z5 lss %~z7 (move /y %5 %7 ) else del %5
    if %~z6 lss %~z7 (move /y %6 %7 ) else del %6
    exit /b

    В моем случаи, если не найдены файлы, то просто продолжить работу

    ----------
    Image Catalyst - оптимизация изображений без потери качества

    Всего записей: 3291 | Зарегистр. 30-12-2007 | Отправлено: 14:27 21-11-2010 | Исправлено: lorents, 14:41 21-11-2010
    bdfy

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

    Цитата:
    если упорядочить по имени, выделить последний файл, нажать shift, выделить первый файл (выделятся все), отпустить shift, затем правой кнопкой печать, у меня по порядку встают в очередь

    а вот в моем отчего то нет - печатает как попало.  
    буду VB скрипт пробовать

    Всего записей: 977 | Зарегистр. 21-04-2004 | Отправлено: 15:59 21-11-2010
    wolf0425



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

    Цитата:
    Подскажите, пожалуйста, как сделать, если в коде произошла ошибка, чтобы bat-файл продолжал работать?  
    если в коде - то никак.
    Другой вопрос что по тому что ты описываешь - ошибка не в коде, а в параметрах.
     

    Цитата:
    В моем случаи, если не найдены файлы, то просто продолжить работу

    во все строки if добавь проверку на существование файла, размер которого ты хочешь сравнивать:

    Код:
    if exist %6 if %~z6 lss %~z7 (move /y %6 %7 ) else del %6  

    ну или хаком:

    Код:
    if %~z20 lss %~z70 (move /y %2 %7 ) else del %2  
    это ограничивает макс.размер, но для твоих целей сойдет.

    Всего записей: 2920 | Зарегистр. 25-04-2007 | Отправлено: 16:09 21-11-2010 | Исправлено: wolf0425, 16:18 21-11-2010
    lorents



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    wolf0425
    Сейчас сделаю, большое спасибо

    ----------
    Image Catalyst - оптимизация изображений без потери качества

    Всего записей: 3291 | Зарегистр. 30-12-2007 | Отправлено: 16:20 21-11-2010 | Исправлено: lorents, 16:21 21-11-2010
    wolf0425



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    lorents там наверно ещё вариант что %1 не создан, соответсвенно нет %7 и %~z7 - честно всё проверять замучаешься.
    а хак там кажись не подойдет - тебе же минимальный но существующий надо оставить, а не просто не вылететь при сравнениях (с хаком отсутствие эквивалентно нулевой длине )
     
     
    Добавлено:
    т.е. если добросовестно всё проверять - будет как-то так:

    Код:
    :cryopng
    move /y %1 %7
    if not exist %7 (move /y %2 %7 ) else if exist %2 if %~z2 lss %~z7 (move /y %2 %7 ) else del %2  

    Всего записей: 2920 | Зарегистр. 25-04-2007 | Отправлено: 16:25 21-11-2010 | Исправлено: wolf0425, 16:37 21-11-2010
    lorents



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    wolf0425
    %7, забыл сказать, существует всегда, это исходный файл. и еще, если %1 существует, то все остальные тоже существуют. Думаю можно сделать так, я сейчас об этом подумал только.

    Код:
    :cryopng
    if exist %1 (
    move /y %1 %7
    if %~z2 lss %~z7 (move /y %2 %7 ) else del %2
    if %~z3 lss %~z7 (move /y %3 %7 ) else del %3
    if %~z4 lss %~z7 (move /y %4 %7 ) else del %4
    if %~z5 lss %~z7 (move /y %5 %7 ) else del %5
    if %~z6 lss %~z7 (move /y %6 %7 ) else del %6
    )
    exit /b


    ----------
    Image Catalyst - оптимизация изображений без потери качества

    Всего записей: 3291 | Зарегистр. 30-12-2007 | Отправлено: 16:37 21-11-2010 | Исправлено: lorents, 16:41 21-11-2010
    wolf0425



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

    Цитата:
    они или все вместе, или ни одного нету
    ну тебе виднее - чего там может отсутствовать, а что не может.
    экономя байтики и скобочки я бы сократил твой последний вариант так:
     

    Код:
    :cryopng
    if not exist %1 exit /b  
    move /y %1 %7
    ... по первому варианту
    или так
    if exist "%%~dpni_cryopng_0.png" call :cryopng "%%~dpni_cryopng_0.png" ...по первому варианту

    Всего записей: 2920 | Зарегистр. 25-04-2007 | Отправлено: 16:41 21-11-2010 | Исправлено: wolf0425, 16:43 21-11-2010
    lorents



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    wolf0425
    Ага понял, спасибо

    ----------
    Image Catalyst - оптимизация изображений без потери качества

    Всего записей: 3291 | Зарегистр. 30-12-2007 | Отправлено: 16:42 21-11-2010 | Исправлено: lorents, 16:43 21-11-2010
       

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

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 9
    vu1tur (09-01-2011 11:53): лимит страниц, продолжение — http://forum.ru-board.com/topic.cgi?forum=62&topic=22143


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru

    Рейтинг.ru