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

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

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

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

   

vu1tur



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

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

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

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 11:53 09-01-2011 | Исправлено: mazafakermazafaka, 11:22 04-06-2011
    Free_Soft



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

    Код:
    Непредвиденное появление: 1.

     
    Добавлено:
    хм.. как ни странно, требовалось двойной %.

    Всего записей: 1536 | Зарегистр. 19-04-2010 | Отправлено: 10:50 03-02-2011
    vitalikc



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Добрый день помогите написать батник для архивации баз данных 1С в файловом варианте.
     
    Структура такова размещение баз d:\bases нужно слаживать архив в e:\backup количество архивных копий 10 с датой и временем архивации, также хотелось бы использовать архиватор 7z.  
     
    Спасибо за помощь.

    Всего записей: 155 | Зарегистр. 21-11-2006 | Отправлено: 12:44 03-02-2011
    aidarsimon



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    не могу справиться с утилитой Blat - отправить на почту.
     

    Код:
    C:\Users\Администратор>d:\admin\blat\blat.exe -pu "логин"-ppw "пароль" -server smtp.yandex.ru -f "исходящее мыло" -to "куда отправляем" -subject "тема письма" -body "текст письма."

     
    Пробовал инсталлировать в реестр ключом -install. Без разницы.
     
    Пишет  
     

    Код:
    The SMTP server does not like the sender name.
    Have you set your mail address correctly?

    Всего записей: 3749 | Зарегистр. 06-09-2008 | Отправлено: 14:37 03-02-2011
    Accessor



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    aidarsimon
    вы констатируете факт или хотите спросить как одолеть Блата?

    Всего записей: 2863 | Зарегистр. 31-10-2003 | Отправлено: 14:58 03-02-2011
    aidarsimon



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Accessor
    Все. разобрался. нашел неплохую инструкцию для новичков http://forum.mozilla-russia.org/viewprintable.php?id=36202
     

    Всего записей: 3749 | Зарегистр. 06-09-2008 | Отправлено: 15:08 03-02-2011
    lorents



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Добрый вечер!
    Хочу добавить в свой проект поддержку Drag and Drop, но при этом чтобы была возможность

    Код:
    for /f "delims=" %%i in ('dir /b /s /a-d Images\*.png') do (
    ImageCatalyst.bat "%%~fi"
    )

    Пожалуйста подскажите, как это можно реализовать?
     
    И еще один вопрос, можно ли чтобы Drag and Drop поддерживал не только файлы, но и папки, т.е. при перетаскивании папки, мой batch искал определенные файлы в самой папке, а так же во вложенных папках тоже.

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

    Всего записей: 3297 | Зарегистр. 30-12-2007 | Отправлено: 23:22 03-02-2011
    Free_Soft



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

    Код:
    cmd.exe /t:02 /q /v:on /c for /l %1 in (1,1,99999) do (set /p k=%1 & echo. & "%1" !k! & echo.)

    Почему параметр выбора цвета не срабатывает в данной конструкции?

    Всего записей: 1536 | Зарегистр. 19-04-2010 | Отправлено: 00:06 04-02-2011 | Исправлено: Free_Soft, 00:08 04-02-2011
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    lorents
    Перетаскиваешь папку или файл(ы) на батник:

    Код:
     
    @echo off
    setlocal
     
    2>nul pushd %* && set "dragdrop=%*\*.png" & popd || set "dragdrop=%*"
    for /f "tokens=*" %%i in ('dir /b /s %dragdrop%') do echo %%i
     
    pause
     



    ----------
    Вопросы в личке останутся без ответа

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 00:21 04-02-2011 | Исправлено: 01MDM, 00:23 04-02-2011
    Free_Soft



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    и еще. все это (код выше) прописывается в реестр через REG ADD. Сам батник может быть запущен с параметром, значение которого невольно передается через %~1 в строчку
    Код:
    1>nul 2>nul REG ADD "HKCR\%%a\shell\runpar...\command" /v "IsolatedCommand" /t REG_SZ /d "cmd.exe /q /v:on /c for /l %%%%i in (1,1,99999) do (set /p k=%%1 & echo. & \"%%1\" !k! & echo.)" /f

    почему-то в переменную !k! и %%i. как этого можно избежать?

    Всего записей: 1536 | Зарегистр. 19-04-2010 | Отправлено: 00:36 04-02-2011 | Исправлено: Free_Soft, 00:45 04-02-2011
    aidarsimon



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Нужно очистить все журналы событий. c:\Windows\System32\winevt\Logs\ с сохранением всех бэкапов.
     
    ключ очистки знаю  
     

    Код:
    wevtutil.exe cl "название журнала" /bu:"путь к бэкапу.evtx"

     
    Принцип понятен - нужно перебрать в цикле все файлы в папке и очистить.
    Вопрос - как это реализовать?

    Всего записей: 3749 | Зарегистр. 06-09-2008 | Отправлено: 08:41 04-02-2011
    lorents



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    01MDM
    именно то что надо. А нельзя ли сделать, если просто запускаешь batch, то он ищет файлы в папке "Images", а если через Drag and Drop, то папку "Images" не трогает?

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

    Всего записей: 3297 | Зарегистр. 30-12-2007 | Отправлено: 09:21 04-02-2011 | Исправлено: lorents, 09:21 04-02-2011
    wolf0425



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

    Цитата:
     если просто запускаешь batch, то он ищет файлы в папке "Images", а если через Drag and Drop, то папку "Images"  

    А как он будет различать эти случаи?
    или "просто запускаешь" - это без параметров?
     

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 10:59 04-02-2011
    lorents



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    wolf0425
    Если честно, мне сейчас важно, как заставить, что мой batch работал через данный код.

    Код:
    for /f "delims=" %%i in ('dir /b /s /a-d Images\*.png') do (
    ImageCatalyst.bat "%%~fi"
    )

    Отсюда будет видно, как сделать дальше.

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

    Всего записей: 3297 | Зарегистр. 30-12-2007 | Отправлено: 11:13 04-02-2011
    Road Runner J



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

    Цитата:
    Road Runner J  
    как-то так видимо  
     
    Код:@echo off  
    >nul ping -n 1 %1 || (echo.NO CONNECTION    %1 & exit)  
    for /f "skip=4 tokens=1" %%a in ('tracert -d -h 21 %1') do if %%a gtr 0 (set "hop=%%a" & if %%a gtr 20 echo TOO MANY HOPS & exit) else call echo. & exit  
     
     
     
     
     
    Цитата:скрипт зависает без пингов  
     
     
    он не зависает - это tracert долго отрабатывает.  
     
    Добавлено:  
    вариант с TOO MANY HOPS не проверял - как-то не нашел узла с большим числом хопов.  
     
    Поправил параметры запуска tracert - убрал разрешение имен и ограничил число прыжков, так будет быстрее добираться до TOO MANY HOPS.

     
    А как сделать чтобы скрипт не выходил если TOO MANY HOPS что-то типа:
     
    проверяет наличие пинга, если есть едем дальше, если нет пишет NO CONNECTION и выход
    считает хопы, если 10 пишет OK и выход, если больше пишет сколько насчитал допустим 15 BAD и выход

    Всего записей: 177 | Зарегистр. 01-06-2006 | Отправлено: 13:09 04-02-2011
    res2001



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

    Цитата:
    проверяет наличие пинга, если есть едем дальше, если нет пишет NO CONNECTION и выход считает хопы, если 10 пишет OK и выход, если больше пишет сколько насчитал допустим 15 BAD и выход  

    Сделать можно, только хопы начнет считать сначала, будет большая задержка, тебе оно точно надо?

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 13:22 04-02-2011
    wolf0425



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

    Цитата:
    что мой batch работал через данный код.  
    твой батч - это ImageCatalyst.bat ? или тот из которого выдран этот вызов ImageCatalyst.bat ?
     
    похоже второе...

    Код:
    @echo off
    if "%~1" neq "" (
        echo Processing files
        for %%i in ( %* ) do call ImageCatalyst.bat "%%~fi"
    ) else (
        echo Processing Images\*.png
        for /f "delims=" %%i in ('dir /b /s /a-d Images\*.png') do call ImageCatalyst.bat "%%~fi"
    )  

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 15:25 04-02-2011 | Исправлено: wolf0425, 15:30 04-02-2011
    lorents



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    wolf0425
    Вот мой batch http://rghost.ru/4201689
    На данный момент, ImageCatalyst.bat оптимизирует файлы которые лежат в папке Images.
    Я хочу от этого отойти. Хочу сделать, так, чтобы пользователь мог выбирать откуда ему отправлять файлы на оптимизацию.
    т.е. чтобы поддерживался такой вариант работы

    Код:
    for /f "delims=" %%i in ('dir /b /s /a-d Dir1\*.png') do (
    ImageCatalyst.bat "%%~fi"
    )

    И была поддержка Drag and Drop (и файлов и папок с файлами)
     
    Я хотел бы узнать, что надо прописать именно в сам ImageCatalyst.bat?

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

    Всего записей: 3297 | Зарегистр. 30-12-2007 | Отправлено: 16:24 04-02-2011
    aidarsimon



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

    Всего записей: 3749 | Зарегистр. 06-09-2008 | Отправлено: 16:34 04-02-2011
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    lorents
    Нужно просто проверить наличие первого аргумента ( %1 ). Если его нет, то тогда по умолчанию папка Images:

    Код:
     
    @echo off
    setlocal
     
    if "%1"=="" (
         
        set "params=.\images\*.png"
     
    ) else (
     
        2>nul pushd %* && set "params=%*\*.png" || set "params=%*"
        popd
     
    )  
     
    for /f "delims=" %%i in ('dir /b /s /a-d %params%') do call ImageCatalyst.bat "%%~fi"
     



    ----------
    Вопросы в личке останутся без ответа

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 17:41 04-02-2011
    lorents



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    01MDM
    мне надо прописать в самом ImageCatalyst.bat чтобы он понимал "%%~fi"?

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

    Всего записей: 3297 | Зарегистр. 30-12-2007 | Отправлено: 18:42 04-02-2011
       

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

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 10
    vu1tur (29-07-2011 12:47): Задачи на bat-файлах 11


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru