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

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



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

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

    То что это нужно - точно, но вот способ ее реализации...

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

    Всего записей: 3297 | Зарегистр. 30-12-2007 | Отправлено: 21:43 08-06-2011
    res2001



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

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 23:10 08-06-2011
    Roy_Focker

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Достаточно простая задача, но при помощи поиска и FAQ решить ее не удалось.
     
    Есть фолдер с большим количиством подфолдеров в которых содержатся еще большее количество файлов. Так же имеется список ЧАСТЕЙ имен файлов в виде txt, которые необходимо скопировать из исходного фолдера в фолдер указанный пользователем.
    Т.е. список выгляди примерно как
     
    blah-blah
    blah-blah-blah
    ...
     
    На деле же файл называется "blah-blah_12345_sdfsfs.pdf"
     
    Скопировать необходимо все файлы, содержащие часть имени из исходного списка.
     

    Всего записей: 3 | Зарегистр. 12-04-2011 | Отправлено: 16:54 09-06-2011 | Исправлено: Roy_Focker, 16:55 09-06-2011
    Nagual



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Roy_Focker
    структура файлов сохраняется или все файлы в одну папку?
    что делать, если такой файл уже существует?

    Всего записей: 528 | Зарегистр. 06-01-2006 | Отправлено: 17:29 09-06-2011
    Roy_Focker

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Файлы можно скинуть в одну папку, то есть структура не важна.
    Если файл существует, то делаем замену.
     
    Спасибо!!!

    Всего записей: 3 | Зарегистр. 12-04-2011 | Отправлено: 17:48 09-06-2011
    Nagual



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Roy_Focker
    Код:
    set "s=source"
    set "d=destin"
    set "l=list.txt"
    for /f "delims=" %%a in (%l%) do dir/b/s "%s%\%%a*">>"%tmp%\tmp.lst"
    for /f "delims=" %%a in (%tmp%\tmp.lst) do @echo copy/y "%%a" "%d%"
    del/q "%tmp%\tmp.lst"

    Всего записей: 528 | Зарегистр. 06-01-2006 | Отправлено: 18:35 09-06-2011 | Исправлено: Nagual, 18:37 09-06-2011
    wolf0425



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

    Код:
    for /r %%a in ( "source dir\*.*" ) do echo.%%~nxa|findstr /i /g:filelist.txt 1>nul && copy /y /b "%%~a" "c:\dest dir\"

     
     
    Добавлено:
    если части имен в списке - это именно произвольные части, а не только начало имени, то в варианте Nagual нужно чуть поправить: dir /b /s "%s%\*%%a*"  
    ну и там между составлением списка и копированием - неплохо бы дубликаты прибить...

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 18:36 09-06-2011 | Исправлено: wolf0425, 18:45 09-06-2011
    ndch

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    как совместить 2 cmd в один ?
     
    FOR %%i IN (*.pdf) DO (i_view32 %%i /killmesoftly /extract=(tempklo\tempklo,gif))
     
    и
     
    FOR %%i IN (tempklo\tempklo\*.gif) DO (i_view32 tempklo\%%~ni%%~xi /crop=(32,111,1410,1080) /convert=succ\%%~ni.jpg)
    del /s /q tempklo\tempklo

    Всего записей: 6488 | Зарегистр. 31-08-2008 | Отправлено: 14:56 10-06-2011 | Исправлено: ndch, 15:18 10-06-2011
    res2001



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    ndch
    все это в одном файле, на разных строках.

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 15:15 10-06-2011
    ndch

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

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

    Сообразил: убрал ()
     
    получилось:

    Код:
    FOR %%i IN (*.pdf) DO i_view32 %%i /killmesoftly /extract=(tempklo\tempklo,gif)
    FOR %%i IN (tempklo\tempklo\*.gif) DO i_view32 tempklo\%%~ni%%~xi /crop=(32,111,1410,1080) /convert=succ\%%~ni.jpg
    del /s /q tempklo\tempklo

     
    Вопрос: что не так с круглыми скобками ?

    Всего записей: 6488 | Зарегистр. 31-08-2008 | Отправлено: 15:17 10-06-2011 | Исправлено: ndch, 15:19 10-06-2011
    res2001



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    ndch
    попробуй перед скобками поставить экранирующий символ, должно получиться так:  ^( ... ^)

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 15:37 10-06-2011
    ndch

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

    Код:
    "(i_view32" не является внутренней или внешней
    командой, исполняемой программой или пакетным файлом.

    Всего записей: 6488 | Зарегистр. 31-08-2008 | Отправлено: 15:40 10-06-2011
    res2001



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    ndch
    i_view32.exe не доступна для запуска из каталога, где лежит батник.
    Проще всего прописать в батнике полный путь к ней.
    Если путь с длинными именами, не забудь взять в кавычки.

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 15:57 10-06-2011
    ndch

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    res2001
    доступна.
    ругается на "(i_view32" , а не на "i_view32".
     
    Добавлено:

    Цитата:
    Проще всего прописать в батнике полный путь к ней

    Полные пути - плохое решение.
    Накрайняк уж путь через переменную.

    Всего записей: 6488 | Зарегистр. 31-08-2008 | Отправлено: 16:33 10-06-2011
    res2001



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

    Цитата:
    ругается на "(i_view32" , а не на "i_view32".  

    Действительно, скобку проглядел.
    Ну тогда давай скрипт в студию, видимо где-то залепил ты не нужную скобку.
    В приведенных примерах записи "(i_view32" нет.

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 16:53 10-06-2011
    ndch

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

    Код:
    FOR %%i IN (*.pdf) DO i_view32 %%i /killmesoftly /extract=(tempklo\tempklo,gif)
    FOR %%i IN (tempklo\tempklo\*.gif) DO i_view32 tempklo\%%~ni%%~xi /crop=(32,111,1410,1080) /convert=succ\%%~ni.jpg
    del /s /q tempklo\tempklo

     
    Нужны ли здесь ещё скобки ? Так - работает.

    Всего записей: 6488 | Зарегистр. 31-08-2008 | Отправлено: 17:12 10-06-2011
    res2001



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

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



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ndch
    Цитата:
    Нужны ли здесь ещё скобки ? Так - работает.
    ну для одной строки городить скобки вроде как незачем, а вообще если хочется со скобками, то  оно должно выглядеть наверно так:

    Код:
    FOR %%i IN (*.pdf) DO (
        i_view32 "%%~i" /killmesoftly /extract=^(tempklo\tempklo,gif^)
    )
    FOR %%i IN (tempklo\tempklo\*.gif) DO (
        i_view32 "tempklo\%%~ni%%~xi" /crop=^(32,111,1410,1080^) /convert="succ\%%~ni.jpg"
    )
    del /s /q tempklo\tempklo  

     

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 20:44 10-06-2011 | Исправлено: wolf0425, 20:46 10-06-2011
    lorents



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

    Код:
    if %tf%==true (
        set logfile=Images.csv
        if not exist %logfile% echo File name;Original Size;Output Size;Change in Bytes;%% of Original>>%logfile%
    )

    Выдает ошибка синтаксиса, с %tf% проблем нету

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

    Всего записей: 3297 | Зарегистр. 30-12-2007 | Отправлено: 20:46 10-06-2011
    wolf0425



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

    Цитата:
    Подскажите, где я напортачил  

    set logfile=Images.csv  переставь в первую строку - т.е. вынеси из ()

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 20:49 10-06-2011 | Исправлено: wolf0425, 20:50 10-06-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