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

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



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

    Цитата:
    Как можно сделать чтоб не переименовывался?


    Код:
    ren "?<" *.txt

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 21:37 26-11-2016
    Linksach



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Благодарю всех за помощь!
     
    NIKZZZZ
     
    Вы как всегда на высоте  

    Всего записей: 113 | Зарегистр. 11-07-2015 | Отправлено: 00:25 27-11-2016 | Исправлено: Linksach, 00:26 27-11-2016
    Elroir



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

    Цитата:
    ren "?<" *.txt

    Это что за конструкция?

    ----------
    "В интернете есть все, но не всегда"

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 00:27 27-11-2016
    NIKZZZZ



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

    Цитата:
    Это что за конструкция?

    Одна из недокументированных возможностей использования масок.
    Знак "<" в маске файлов ведет себя так-же , как и "*", но не захватывает ".", в данном случае - любой файл без расширения, так-как это спец символ, его необходимо обрамлять кавычками.
    Аналогично ">" - любой одиночный символ, кроме "." , аналог "?" .
     
     

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 00:47 27-11-2016 | Исправлено: NIKZZZZ, 00:49 27-11-2016
    Elroir



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    NIKZZZZ
    Спасибо! Век живи - век учись.
    Я до твоего ответа успел пару первых страниц гугла по команде "ren" прочитать.

    ----------
    "В интернете есть все, но не всегда"

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 00:55 27-11-2016
    Pasha_ZZZ



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Лучше уж наверное пользоваться тем, чем положено (по документации). Дабы случайно функционал в один прекрасный момент не исчез без предупреждения. В данном, например, случае, конструкция выборки файлов без расширения
    Цитата:
    ren "*." *.txt

    Всего записей: 12360 | Зарегистр. 11-03-2002 | Отправлено: 06:13 27-11-2016
    NIKZZZZ



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

    Цитата:
    Лучше уж наверное пользоваться тем, чем положено (по документации).

    Согласен полностью, но маска , хотя и документирована, иногда сильно подводит, да и работает по разному в разных утилитах, сколько раз налетал.  

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 06:33 27-11-2016
    Pasha_ZZZ



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    NIKZZZZ
    Ну точка в конце имени всегда работала, вроде бы... Одним из исключений может быть 7-Zip, не проверял. У него свой парсер масок вместо системного.

    Всего записей: 12360 | Зарегистр. 11-03-2002 | Отправлено: 06:44 27-11-2016
    NIKZZZZ



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Pasha_ZZZ
    С точкой вообще проблемы.
    Например маска
    "*.." выводит все файлы без расширения, хотя этого делать не должна.
    "*.?*" должна наоборот выводить только файлы , имеющие расширения, а выводит все.
    Короче, что это за таинственны символ точка, думаю, известно только разработчикам.  
     

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 07:15 27-11-2016
    Pasha_ZZZ



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    NIKZZZZ
    Цитата:
    что это за таинственны символ точка, думаю, известно только разработчикам
    Пережитки ДОС и такого понятия как расширение. 8.3 и имена без точек......

    Всего записей: 12360 | Зарегистр. 11-03-2002 | Отправлено: 07:37 27-11-2016
    Linksach



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    BorlandIMHO
     Батники ArchiveUnpacker.cmd и  UnpackedEraser.cmd     отлично работают
    Большое спасибо!

    Всего записей: 113 | Зарегистр. 11-07-2015 | Отправлено: 09:14 27-11-2016
    Gailzipp



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Здравствуйте!
    Нужно из экспортированных электронных писем в формате .eml выделить определенную строку целиком в отдельный файл из каждого сохраненного письма. Значения различны и маска не подходит, главное что все они находятся в определенной строке.
     
    Наглядно:
    Рабочий каталог: C:\exportedmailbox\*.eml
    Целевая извлекаемая строка в каждом файле: 39
    Выходной файл: _output.txt в той же папке
     
    Мои эксперименты по переиначиванию шаблона скрипта с маской значения на конкретную строку успехом не увенчались. Прошу помощи.

    Всего записей: 2 | Зарегистр. 08-03-2014 | Отправлено: 14:40 27-11-2016
    YuS_2



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

    Цитата:
    Целевая извлекаемая строка в каждом файле: 39

    В чем трудность-то? Нумеруются строки и сохраняется строка под номером 39 в отдельный файл. Выполнять можно как встроенными средствами cmd, так и с помощью внешних утилит (например, редактор sed)...

    Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 19:32 27-11-2016
    yurkesha



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Gailzipp
    Вот тебе основа для одного файла:

    Код:
    FOR /F "tokens=1* skip=38 delims=" %%a IN (file.ext) DO ECHO %%a &  GOTO :EOF

    выведет на экран 39 строку файла file.ext
    Ну а начало сам сделаешь - цикл for по файловой системе для определенной папки с определенной маской файлов и вывод ECHO в нужный файл перенаправишь...
    Обработку исключений - если файл меньше 39 строк сам думай

    ----------
    Всем непричастным рекомендую прогулки на свежем воздухе

    Всего записей: 2741 | Зарегистр. 15-12-2003 | Отправлено: 19:49 27-11-2016
    Linksach



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Помогите пожалуйста !
    Есть такой файл realuniq.txt -весит 14,6 ГгБ
    При попытке его открыть с помощью EmEditor появляетя такая надпись
     
    http://hkar.ru/MmRS
     
    Файл пишет в кодировке Кириллица(Windows).Это что? chcp 1251?
     
    Вообщем мне его надо перекодировать чтоб можно было открывать сразу в читаемом виде,а не выбирать кодировку для открытия-перекодировать то ли в UTF-8 то ли в OEM866  Наверное в utf-8  
    То ли средствами cmd,то ли с помощью батника нужно открыть сразу в читаемом виде
    Можно сделать через iconv.У меня установленна эта утилита
    Благодарю!
     
    Нашёл инете такой код,но у меня он не работает  

    Код:
    :: Win-1251 to UTF-8
    @chcp 1251>nul
    @<"in.file">"out.file" (for /f "delims=" %%i in ('find/n /v ""') do @chcp 65001>nul& set x=%%i& cmd/v/c echo[!x:*]^^=!)

     
     
    подредактировав,получилось

    Код:
    :: Win-1251 to UTF-8
    @chcp 1251>nul
    @<"realuniq.txt">"out.realuniq.txt" (for /f "delims=" %%i in ('find/n /v ""') do @chcp 65001>nul& set x=%%i& cmd/v/c echo[!x:*]^^=!)

     
    Но не работает

    Всего записей: 113 | Зарегистр. 11-07-2015 | Отправлено: 23:19 27-11-2016 | Исправлено: Linksach, 18:21 29-11-2016
    BorlandIMHO

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

    Цитата:
    Это что? chcp 1251?

    По-моему больше похоже на utf-8, который программа пытается отобразить в 1251.
    И если текст уже в UTF, то никакая перекодировка и не требуется.

    Цитата:
    с помощью EmEditor

    А что не с помощью вашего любимого Notepad++?..
    Насколь я вижу на картинке, там есть опция выбора кодировки, которой и нужно воспользоваться...
    Ставить эту прогу для опытов не буду, меня вполне устраивают редактор и вьюер, встроенные в FAR Manager...

    ----------
    http://www.imho.ws

    Всего записей: 2376 | Зарегистр. 12-10-2006 | Отправлено: 21:08 30-11-2016
    fakel33



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Linksach
    Воспользуйтесь редактором встроенный в FAR Manager.
    Там можно и выбрать кодировку по <Shift>+F8

    Всего записей: 1179 | Зарегистр. 22-08-2003 | Отправлено: 23:18 30-11-2016
    Linksach



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

    Цитата:
    А что не с помощью вашего любимого Notepad++?..

    Notepad++ помоему не откроет файл весом в 14.6 ггб, а EmEditor откроет
     
    Добавлено:
    fakel33
    FAR Manager честно говоря я им не умею пользоваться

    Всего записей: 113 | Зарегистр. 11-07-2015 | Отправлено: 11:06 01-12-2016 | Исправлено: Linksach, 11:28 01-12-2016
    Unitaz



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Граждане я записываю флешку сетевого чипа   и хотелось бы по простому организовать инкремент мак адреса ,  что бы при следующем запуске писались другие мак адреса
    EEUPDATE.exe -NIC=1 -MAC=100000000000 -d flash.eep
    EEUPDATE.exe -NIC=2 -MAC=200000000000 -d flash.eep
     
    у меня два интерфейса NIC=1 и NIC=2

    Всего записей: 2289 | Зарегистр. 28-06-2002 | Отправлено: 15:00 02-12-2016 | Исправлено: Unitaz, 15:02 02-12-2016
    BorlandIMHO

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Unitaz
    По-простому - не получится, MAC весьма немаленькое шестнадцатеричное число, cmd с такими работать не умеет...
    FlashNetChipWithIncr.cmd
    Код:
    @echo off
    REM Проверяем наличие файлов с текущими значениями MAC
    REM При отсутствии файлов - создаём с предопределёнными начальными значениями
    if NOT EXIST MAC1.file 1>MAC1.file echo 0x100000000000
    if NOT EXIST MAC2.file 1>MAC2.file echo 0x200000000000
     
    REM читаем значения MAC из файлов
    for /F %%A in (MAC1.file) do set MAC1=%%A
    for /F %%B in (MAC2.file) do set MAC2=%%B
     
    REM Юзаем как хотели
    echo EEUPDATE.exe -NIC=1 -MAC=%MAC1:~2% -d flash.eep
    echo EEUPDATE.exe -NIC=2 -MAC=%MAC2:~2% -d flash.eep
     
    REM Инкрементим маки и пишем новые значения в файлы
    c:\calc\bin\calc.exe base(16); %MAC1%+0x1|more +1 1>MAC1.file
    c:\calc\bin\calc.exe base(16); %MAC2%+0x1|more +1 1>MAC2.file
    goto :EOF

    Используется утилита Calc (предполагается, что архив с утилитой распакован в папку "Calc" на диске "c:").
    Перед собственно командой для "промышленного" использования нужно убрать "echo".

    ----------
    http://www.imho.ws

    Всего записей: 2376 | Зарегистр. 12-10-2006 | Отправлено: 01:13 03-12-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