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

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

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

KLASS (06-03-2018 00:44): Объединение тем по сценариям: Сценарии Windows
 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

hErAx

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

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

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

  • Отправлено: 01:53 25-10-2015 | Исправлено: Paromshick, 21:51 18-12-2017
    clio7



    BANNED
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Повторю вопрос, т.к. "герой" , тот что ниже, влепил "шпалу" своим "железным" вопросом.
     
    Комрады, пните pls. на источник  
    Задача: удалить из имени группы файлов точки и запятые, либо заменить нижним подчеркиванием.
     
    seross23

    Цитата:
    И так, у меня есть проблема с охлаждением ноутбука, вопрос очень простой
    О железе пишем сюда! только вопрос сформулируй более четко, понять из того что ты сделал, а главное чего ты хочешь, очень непросто. И пожалуйста не отвечай, млин, в ЭТОМ разделе!!!

    Всего записей: 28 | Зарегистр. 21-11-2002 | Отправлено: 06:41 02-04-2016 | Исправлено: clio7, 06:49 02-04-2016
    bifido76



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    clio7
    Загляните сюда - http://www.dostips.com/DtTipsStringManipulation.php

    Всего записей: 769 | Зарегистр. 28-09-2015 | Отправлено: 06:54 02-04-2016
    clio7



    BANNED
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    bifido76
    полезный ресурс, но не слишком изобилует примерами. Свою задачу я решил, благодаря утилите "паскального" друга, который написал ReNamer. Низкий ему поклон.  
    Для себя я выбрал портативную версию.  
    Тема об этой программе на Rubord

    Всего записей: 28 | Зарегистр. 21-11-2002 | Отправлено: 08:48 02-04-2016 | Исправлено: clio7, 08:54 02-04-2016
    YuS_two



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

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

    Как я понял, задача уже решена...
    Но если вдруг понадобится в будущем, могу предложить, раз уж не принципиально именно из командной строки, воспользоваться каким-либо файловым менеджером, например, Total Commander или Far и т.п., в них есть такая возможность... Только вопрос необходимо задать в соответствующих ветках...

    Всего записей: 399 | Зарегистр. 28-03-2016 | Отправлено: 09:06 02-04-2016
    dstormclone

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    доброго времени..
    хочу поинтересоваться может кто сталкивался уже..
    ТЗ
    нужен батник который найдет zip в текущей папке (имена каждый раз разные)
    и заменит в этом архиве во множестве xmlовских файлов (имена каждый раз разные)(в кодировке русской виндовой) одни цифры на другие.
     
    если была у кого подобная задача, поделитесь ссылкой  
     
    -----------------------------------------------
    поискал нашел в интернетах такую утилиту.. достаточно с богатым функционалом.. как поиск по маске
    fnr.exe
    http://findandreplace.codeplex.com/#
    работает шустро
    -----------------------------------------------
    задача сводится теперь найти архив, распаковать, выполнить утилиту, запаковать
     

    Всего записей: 31 | Зарегистр. 22-10-2014 | Отправлено: 16:48 07-04-2016 | Исправлено: dstormclone, 17:23 07-04-2016
    YuS_two



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

    Цитата:
    задача сводится

    В таком виде  задача сводится к такому описанию:
    пойди туда - не знаю куда, найди то - не знаю что...
    Как Вы собираетесь искать файл, у которого имена разные? Можно найти группу файлов... например, по расширению или по части имени. Т.е. необходимо от чего-то отталкиваться, а после того, как найдем, уже необходимо будет выбирать упаковщик/распаковщик и далее изучать его командную строку...
    В общем, в правильно заданном вопросе, должно содержаться примерно 50% ответа

    Всего записей: 399 | Зарегистр. 28-03-2016 | Отправлено: 19:51 07-04-2016 | Исправлено: YuS_two, 19:53 07-04-2016
    dstormclone

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

    Цитата:
    В таком виде  задача сводится к такому описанию:  

    вполне возможно что какая-то неточность в моих словах есть
    есть программа выгружающая zip файл (в зависимости от региона -может быть 1607.zip или 0701.zip или другие цифры)
    в связи с тем что исходная программа выгружает неправильно xml ки которые а архиве, мне нужно в xml заменить одни подстроки на другие)
     
    Планирую создать папку (на рабочем столе), в эту папку скинуть батник и все утилиты, в эту папку закидывают неправильный zip (или сразу несколько) запускают батник.. и получают правильные zip
     

    Цитата:
    Можно найти группу файлов... например, по расширению  

    вот поэтому я тут недавно делал батник, ищет нахождения определенных папок и удаления
     
    for /F "delims=" %%i in ('dir c:\ /A:D /B /S ^| find "tester\info\go"') do rmdir /s /q "%%i"  
     
    сейчас вот получается что мне нужно взять место откуда запущен скрипт найти в этой папке все zip
    распаковать... запустить утилиту замены... запаковать обратно с перезаписью (или предварительно удалив исходный zip)  
     
    однако вот это конструкция не видит в текущей папке ни одного zip файла  
     
    for /F "delims=" %%i in ('dir %%~dp0 /A:D /B /S ^| find ".zip"') do echo "findfile"  
     
     
     

    Всего записей: 31 | Зарегистр. 22-10-2014 | Отправлено: 09:10 08-04-2016
    nik4z



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

    Код:
    for /F "delims=" %%i in ('dir %~dp0 /A:-D /B /S ^| find ".zip"') do echo "findfile"  

    А проще так

    Код:
    for /F "delims=" %%i in ('dir %~dp0*.zip /A:-D /B /S"') do echo "findfile"    

    Всего записей: 218 | Зарегистр. 08-11-2015 | Отправлено: 09:28 08-04-2016
    YuS_2TMP



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

    Цитата:
    однако вот это конструкция не видит в текущей папке ни одного zip файла

    Во-о-от! Это уже более конкретно...
     

    Код:
    dir %%~dp0 /A:D /B /S ^| find ".zip"

    - вот эта конструкция не то, что .zip, вообще ничего не найдет...
    пробуйте так:

    Код:
    dir %~dp0 /A /B /S ^| find ".zip"

     
    а в целом, лучше не echo "findfile" использовать для проверки, а напрямую:

    Код:
    @echo off
    for /F "delims=" %%i in ('dir %~dp0 /A /B /S ^| find ".zip"') do echo "%%i"

    - сразу все файлы будет видно

    Всего записей: 3 | Зарегистр. 08-04-2016 | Отправлено: 09:39 08-04-2016
    Pasha_ZZZ



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    dstormclone
    Я вот все не понимаю: чем вам обычный FOR /R не угодил? Зачем все эти DIR'ы c FIND'ами...

    Всего записей: 12360 | Зарегистр. 11-03-2002 | Отправлено: 09:52 08-04-2016
    YuS_2TMP



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

    Цитата:
    FOR /R

    dir /s

    Всего записей: 3 | Зарегистр. 08-04-2016 | Отправлено: 10:14 08-04-2016
    dstormclone

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    @echo off
    setlocal enabledelayedexpansion
    for /F "delims=" %%i in ('dir %~dp0*.zip /A:-D /B /S') do (
    %~dp07z.exe x %%~fi && %~dp0fnr.exe --cl --dir %~dp0 --fileMask "*.xml" --excludeFileMask "*.dll, *.exe" --find "160701.11" --replace "160701.20"  
    )
    pause
     
    в данный момент скрипт ищет и распаковывает zip (7z.exe в этом же каталоге)  
    запуcкает утилиту (fnr.exe в этом же каталоге) которая ищет и правит ВСЕ xml в каталоге
     
    теперь нужно запаковать обратно xmlки в исходный zip, и удалить соответственно  
     
    нужен вложенный цикл???
    или как по правильнее сделать??
     

    Всего записей: 31 | Зарегистр. 22-10-2014 | Отправлено: 11:59 08-04-2016
    nik4z



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

    Код:
    @echo off
    for /F "delims=" %%i in ('dir %~dp0*.zip /A:-D /B /S') do (
    2>nul rd /q /s "%temp%\$xml$"
    md "%temp%\$xml$"
    "%~dp07z.exe" x "%%~fi" -o"%temp%\$xml$" *.xml -r
    "%~dp0fnr.exe" .......................    
    "%~dp07z.exe" a "%%~fi" "%temp%\$xml$\*" -y
    rd /q /s "%temp%\$xml$"
    )
    pause  

    Всего записей: 218 | Зарегистр. 08-11-2015 | Отправлено: 13:18 08-04-2016 | Исправлено: nik4z, 13:22 08-04-2016
    Gosuto



    BANNED
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    nik4z, уважаемые, подскажите, в батнике

    Код:
    start /wait "" "%~dp0program/soffice.exe"

    все верно? без /wait soffice.exe из подпапки не запускался, с /wait - запускается, но окошко cmd висит, приходится в bat to exe compiler настраивать, чтоб скрытым запускался.
    Решил себе портаху замутить, вот и интересуюсь.

    Всего записей: 5619 | Зарегистр. 09-11-2015 | Отправлено: 13:28 08-04-2016
    nik4z



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Gosuto
    Странно, /wait никак не должен влиять на запуск.

    Всего записей: 218 | Зарегистр. 08-11-2015 | Отправлено: 13:37 08-04-2016
    bifido 76



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

    Цитата:
    все верно?
    Да.

    Всего записей: 2473 | Зарегистр. 08-04-2016 | Отправлено: 13:37 08-04-2016
    Gosuto



    BANNED
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Спасибо, господа, прояснили.
    Ну, у меня ланчер будет из батника этого.

    Всего записей: 5619 | Зарегистр. 09-11-2015 | Отправлено: 13:41 08-04-2016
    bifido 76



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

    Код:
    CD /D "%~dp0program"
    start /wait "" "soffice.exe"

    попробовать можно и без "wait" (если программа только одна - soffice.exe) и посмотреть как будет (если программ несколько то лучше с "wait").

    Всего записей: 2473 | Зарегистр. 08-04-2016 | Отправлено: 13:48 08-04-2016 | Исправлено: bifido 76, 13:49 08-04-2016
    Gosuto



    BANNED
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    bifido 76
    О, спасибки, надо будет попробовать.

     
    Добавлено:
    ...записал себе в памятку

    Всего записей: 5619 | Зарегистр. 09-11-2015 | Отправлено: 13:53 08-04-2016
    dstormclone

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

    Всего записей: 31 | Зарегистр. 22-10-2014 | Отправлено: 17:01 08-04-2016
       

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

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 12
    KLASS (06-03-2018 00:44): Объединение тем по сценариям: Сценарии Windows


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru