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

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



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

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

     
    Странно, dir /b /a:-d  должна искать только файлы, а не каталоги, попробуй просто ее выполнить, может не правильно что-то скопировал.

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



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    fractalzZz
    Пошла вторая страница...
    1. А Вы в какой кодировке filelist.txt храните?  
    2. Приведите здесь примеры имен файлов, которые пропускаются.

    Всего записей: 399 | Зарегистр. 28-03-2016 | Отправлено: 08:12 19-04-2016
    fractalzZz



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    nik4z
    Там были не просто каталоги, а обрезанные пути до первого пробела (но даже так там видно тот же выхлоп, так как начало пути те же)
     
    YuS_two
    Файл в кодировке UTF-8, все пути корректны в файле. Файл просто список путей - каждый путь с новой строки без кавычек вокруг путей.
     
    Один из примеров пути (x - любой символ латиницы или кириллицы):
    g:\xxx\__xx\xxx\2015 - xxx\2. xxxx x&#251;x.pdb (форум тут отображает &#251; код вместо символа "u+^ сверху", но именно подобные символы и вызывают проблемы)

    Всего записей: 66 | Зарегистр. 08-11-2010 | Отправлено: 16:33 19-04-2016 | Исправлено: fractalzZz, 16:38 19-04-2016
    nik4z



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

    Цитата:
    Файл в кодировке UTF-8

    Так тогда надо ставить

    Код:
    chcp 65001

    А лучше, конверторнуть файл в oem, проблем меньше будет.  
     

    Всего записей: 218 | Зарегистр. 08-11-2015 | Отправлено: 16:51 19-04-2016
    fractalzZz



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    nik4z
    Теперь похоже сработало. UTF-8, это чтобы сохранить все юникод символы в путях без изменений.

    Всего записей: 66 | Зарегистр. 08-11-2010 | Отправлено: 17:17 19-04-2016
    YuS_two



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

    Цитата:
    А лучше, конверторнуть файл в oem, проблем меньше будет.

    в OEM умляуты не сохранятся, эти символы в именах файлов тоже придется менять...

    Всего записей: 399 | Зарегистр. 28-03-2016 | Отправлено: 18:42 19-04-2016
    fractalzZz



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Пара проблем при проверке - первый путь всегда пишется в выходной файл из-за наличия откуда-то перед самим путем (ещё перед буквой диска) какого-то невидимого символа юникод (исчезает после перекодировки файла в UTF-8). Выходной файл в кодировке ANSI и этот символ и вообще все символы, типа умляутов, отображаются наподобие "п>>и".
     
    - Как сделать так, чтобы первый путь правильно обрабатывался ?
    - И как сразу получить выходнйо файл в UTF-8, чтобы все символы правильно отображались и сохранились ?

    Всего записей: 66 | Зарегистр. 08-11-2010 | Отправлено: 19:57 19-04-2016 | Исправлено: fractalzZz, 19:58 19-04-2016
    YuS_two



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

    Всего записей: 399 | Зарегистр. 28-03-2016 | Отправлено: 21:03 19-04-2016
    fractalzZz



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    YuS_two
    В принципе в моём случае можно и не использовать первую строку, спасибо.
     
    Батник:

    Код:
    chcp 65001
    del /f /q output1.txt
    for /f "tokens=*" %%a in (input1.txt) do if NOT exist "%%~sa" echo.%%a>>output1.txt

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

    Всего записей: 66 | Зарегистр. 08-11-2010 | Отправлено: 21:56 19-04-2016 | Исправлено: fractalzZz, 21:57 19-04-2016
    YuS_two



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

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

    Можно сразу говорить уверенно - всё получится.

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

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Нужен бат, который находит самый большой файл в папке C:\backup и выводит его размер.

    Всего записей: 73 | Зарегистр. 15-02-2002 | Отправлено: 08:45 20-04-2016
    nik4z



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

    Цитата:
    Нужен бат, который находит самый большой файл в папке C:\backup и выводит его размер.
     


    Код:
    for /f "delims=" %%a in ('dir /a:-d /b /o:s')  do set file=%%a  & set size=%%~za
    echo %file%  %size%

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



    BANNED
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Господа, тут попался батник (я в них не очень шарю), но, т.к. он работает исправно, нельзя ли в него добавить обратные действия? Т.е. он там добавляет сервис, в реестр пишет, драйвер добавляет, а потом запускает программу.
    Так вот, нельзя ли в конец его добавить обратные действия, чтобы он ждал (желательно в скрытом режиме) окончания работы запускаемого им екзешника, а потом все возвращал к исходному состоянию (в реестре, службах, драйверах). Или отдельный батник для удаления чтоль, хз. Короче, вот исходник
    Подробнее...
    Понравился просто.

    Всего записей: 5619 | Зарегистр. 09-11-2015 | Отправлено: 09:38 20-04-2016
    YuS_two



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

    Цитата:
    нельзя ли в него добавить обратные действия?

    Можно. Надо только почитать встроенную справку по командам... например, для sc.exe - вместо параметра start, прописать stop, вместо create - delete и т.д.; вместо команды copy прописать del с путем и именем файла, который указан как целевой в copy, а для реестра: вместо reg add, прописать reg delete с поправками и уточнениями, и т.д..  
    Но это всё в общих чертах, лучше разобраться с каждой командой отдельно и посмотреть, так ли уж необходимо выполнять это обратное действие...  
    Кроме того, не факт, что то, что добавляется, уже не существовало до этой команды... ведь, проверка установки всего этого набора, выполняется по наличию всего лишь одного файла, в начале батника.
     
    Но ковырять всё это - просто лень.

    Всего записей: 399 | Зарегистр. 28-03-2016 | Отправлено: 12:01 20-04-2016
    Vidockq

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

    Всего записей: 176 | Зарегистр. 14-01-2016 | Отправлено: 14:09 23-04-2016
    shadow_member



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

    Всего записей: 22354 | Зарегистр. 18-07-2006 | Отправлено: 14:42 23-04-2016
    Vidockq

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

    Цитата:
    Парольный менеджер

    Не... это не наш путь
    Опять же пароли... логины...  
    Хотелось бы на парочку сайтов сварганить ссылок (батников) для быстрого запуска.

    Всего записей: 176 | Зарегистр. 14-01-2016 | Отправлено: 19:59 23-04-2016
    Kakazabr

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Здравствуйте, появилась задача написать скрипт powershell...  
     
     ...кoтoрый в зaдaннoй пaпкe |"пaрaмeтр cкриптa"| и пoдпaпкaх ищeт фaйлы *.txt, и, ecли рaзмeр фaйлa бoльшe 200 Кб или дaтa пocлeднeгo измeнeния более 60 днeй, пeрeмeщaeт eгo в oтдeльную пaпку |"втoрoй пaрaмeтр cкриптa"|.  
     Cкрипт дoлжeн лoгирoвaть прoизвeдeнныe дeйcтвия в log.txt  
     Также при перемещении файлов необходимо обеспечить уникальность имен файлoв.

    Всего записей: 3 | Зарегистр. 26-04-2016 | Отправлено: 11:50 27-04-2016
    Victor33Man



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Доброго времени суток!
     
    Есть приложение, которое при завершении (Файл->Выход) закрывает свое окно но остается в памяти в виде процесса.
    Конкретно речь идет о Hex Workshop  - ftp://www.bpsoft.com/pub/hw_v680.exe
     
    Выглядит это так:  
     
    1. Запускаем приложение HWorks32.exe и в диспетчере задач видим:
    Приложение - Hex Workshop
    Процесс - HWorks32.exe
     
    2. Выходим из приложения и в диспетчере задач видим:
    Приложения - нет (!)
    Процесс - HWorks32.exe - остается в памяти!!!
     
    Есть желание прибить этот процесс (это не проблема), но как обнаружить такую ситуацию?
    Наверное, можно смотреть в AutoIT открытое окно, если оно закрывается - то убивать процесс...???
    Что можно еще придумать, либо как конкретно реализовать в AutoIT, а то я буду долго с ним ковыряться.
     

    Всего записей: 273 | Зарегистр. 06-04-2016 | Отправлено: 23:57 30-04-2016 | Исправлено: Victor33Man, 02:02 01-05-2016
    YuS_two



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

    Цитата:
    либо как конкретно реализовать в AutoIT

    AutoIT это ведь не совсем батники и здесь это оффтопик...
     

    Цитата:
    Есть желание прибить этот процесс (это не проблема), но как обнаружить такую ситуацию?  

    Что значит обнаружить? Написать сценарий, где присутствует запуск программы, ожидание и если требуется, то и проверку наличия, и прибитие процесса можно организовать там же... в чем именно проблема?

    Всего записей: 399 | Зарегистр. 28-03-2016 | Отправлено: 05:36 01-05-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