The bat регулярные выражения
полезно иногда смотреть официальные сайты.
Сам ФАК я тут не успел процитировать, так что идите по ссылке. Там есть. Надеюсь свежий.
СПИСОК МАКРОСОВ,
ДОСТУПНЫХ В ШАБЛОНАХ ПИСЕМ THEBAT!
Сортировка по группам, перевод Garry V. Dorohin
GVD: С версии 1.29 (иногда)*все* макросыдоступны в области
редактирования шаблона при нажатии на кнопку "Макро"
ОГЛАВЛЕНИЕ:
----------
1. ТЕКСТ
2. ОТПРАВИТЕЛЬ (SENDER INFO)
3. ПОЛУЧАТЕЛЬ (RECIPIENT INFO)
4. МАКРОСЫ ПОЛЕЙ (PRE-DEFINED INFO)
5. ПРОЧЕЕ (MISCELLANEOUS)
Названия этих макрокомандне перечислены на всплывающее меню кнопки
"Макро". Хотявы получите реакцию на нихпосле щелчка по пунктам "
Прикрепить файл. ", " Включить файл шаблона . " и "Вставить Текстовый
файл . ".
%INCLUDE
%PUT
%ATTACHFILE
Появились в v1.00 build 1349 (смотри README).
Эти макросы появились в v1.043 и полностью документированы в README:
%ACCOUNTNAME - Имя текущего почтового ящика
%FOLDERNAME - Имя текущей папки
%FOLDERFROMNAME - Показываетимя из поля "From:" для текущего почтового
ящика.
%FOLDERFROMADDR - Показываетe-mailадрес из поля "From:"для текущего
почтового ящика.
%FOLDERREPLYNAME - Показывает имя из поля "Reply-To:" для текущего почтового
ящика.
%FOLDERREPLYADDR - Показывает e-mail адрес из поля "Reply-To:" для текущего
почтового ящика.
Появились в версии v.1.1
%BLANK - Эта макрокоманда всегда вставляет пустую строку, можно
использовать, если Вы желаете иметь пустой шаблон в папке.
Эти макросы показывают дату/время по-английски, независимо от установленный
в настоящее время системного языка
%DATEEN
%ODATEEN
%TIMELONGEN
%OTIMELONGEN
Показывает список присоединенных файлов, с полными именами. если их нет,
показывает "".
%ATTACHMENTS
%OATTACHMENTS
Доступно с версии v1.14
Доступно с версии v1.36 Beta/3
Используются следующие метасимволы (egrep - стандарт)
\- считать следующий метасимвол как обычный символ
^- начало строки
.- один произвольный символ. Кроме ’\n’ - конец строки
$- конец строки
|- альтернатива (или)
() - группировка
[] - класс символов
\w - алфавитно-цифровой или "_"
\W - не алфавитно-цифровой
\s - один пробел
\S - один не пробел
\d - одна цифра
\D - одна не цифра
Мнимые метасимволы
\b - граница слова
\B - не граница слова
\A - начало строки
\Z - конец строки
Метасимволы имеют модификаторы
* - повторяется 0 или большее число раз
+ - повторяется 1 или большее число раз
? - 1 или 0 раз
- очно n раз
- по меньшей мере n раз
- не меньше n но и не более m
Например чтобы выдернуть из письма из строки
Name: Serg Demchenko_____________________
Нужно выполнить следующий макрос
(С начала строки,более одного пробела до слова "Name:", после него
скушать лишние пробелы сгруппировать и вывести любые символы до символов
"_" повторяющихся более одного раза . )
Доступно с версии v1.38
. Теперь макросы полностью рекурсивны, например можно писать такое
%SUBJECT="Ответ на письмо от %ODATE время %OTIME"
%FOLDERORGANISATIONПоле Организация текущей папки (Свойства папки,
вкладка Поля)
%SETPATTREGEXP="" устанавливает шаблон регулярного выражения для макроса
%REGEXPMATCH
%REGEXPMATCH="" возвращаетподстроку, которая удовлетворяет шаблону (а
может,лучше написать - регулярному выражению?), установленному ранее с
помощью макроса %SETPATTREGEXP
%CLEAR макрос для"быстрых шаблонов" удаляющий весь текст из редактора
перед вставкой шаблона.
%ISSIGNATURE макрос, вставленный в Быстрый шаблон, указывает, что этот
быстрый шаблон является подписью. Когда он используется, текущая подпись
заменяется на текст шаблона, при этом позиция курсора не меняется.
%LANGUAGE="languageid" для выбора словаря припроверке орфографии
письма. Имеет значения
AM - American English
EA - Australian English
BR - British English
CT - Catalan
CZ - Czech
DA - Danish
FI - Finnish
FR - French
FC - French Canadian
GE - German
IT - Italian
NO - Norwegian (Bokmal)
NN - Norwegian (Nynorsk)
NL - Dutch
PB - Portuguese (Brazil)
PT - Portuguese (Iberian)
PL - Polish
SP - Spanish
SW - Swedish
RU - Russian
HU - Hungarian
Дляиспользования Common SpellerAPI ,Language ID должен получить
префикс "CSAPI". E.g. %LANGUAGE="CSAPI RU"
%INSERTPGPKEY="title" макрос для присоединения публичного ключа PGP с
характерным признаком. Работает только со встроенным PGP. Например строка
%INSERTPGPKEY="%FROMADDR" вставит ваш собственный открытый ключ.
%QINCLUDE="Псевдоним быстрого шаблона" макрос для вставки быстрых
шаблонов в стандартные шаблоны. Остерегайтесь рекурсивных быстрых шаблонов!
Мы неисключили возможностьрекурсивного включения, поскольку это может
быть полезно при работе в регулярными выражениями. RegExps.
Эти макросы были причиной Access Violation, если использовались в шаблоне
новогописьма, и письмо создавалось в момент, когда ни одна папка не была
выбрана в списке (или дереве) папок.
%FOLDERFROMNAME,
%FOLDERFROMADDR,
%FOLDERREPLYNAME,
%FOLDERREPLYADDR
%FOLDERNAME
Доступно с версии v1.41
%TRACKINGNUMBER (случайное 32-bit число, в шестнадцатиричной системе).
Доступно с версии v1.42
%FROM="smth", %REPLYTO="smth", %RETURNPATH="smth"не требуют обнуления
своих значений, можно сразу указать значение.
Доступно с версии v1.44
%QClipboard/%QuoteClipboard Содержимое клипборда в виде цитаты.
%OneLine/%SingleLine Если используется вбыстром шаблоне, результат
обработки шаблона будет отсформатирован водну строку - удобно для
определения сложных вспомогательных шаблонов для генерации одной строки.
QUOTESTYLE="expression" -изменение стиля цитирования,после этого
макроса.
Допустимы следующие значения:
NONE - пустой префикс (стандартно)
I - используются инициалы отправителя
IF - первый инициал отправителя
N - полное имя отправителя
F - первое имя отправителя
L - последнее имя (фамилия) отправителя
=text - используется "text" как цитирование, e.g. %QUOTESTYLE="=-|"
Доступно с версии v1.44
%PRIORITY="H/N/L" Приоритет писем высокий/обычный/низкий
LIST OF DOCUMENTED COMMAND LINE PARAMETERS
FOR THE BAT V.1.21 OR LATER.
ПРОВЕРКА НОВОЙ ПОЧТЫ - КОМАНДЫ /CHECK И /CHECKALL
ПРИМЕЧАНИЯ:
1. Для разделениямасок используйте точку с запятой (символ ";"). Не
используйте пробелы между масками, когда используете команду /CHECK как
параметр командной строки, потому что отделенная пробелом маска будет
обрабатыватьсякак следующийпараметр командной строки и не будет понята
программой должным образом.
2. Если маска содержит пробелы, поместите ее в кавычки, как показанное в
первомпримере. Еслимаска содержит кавычки, Вы должны использовать
апострофы (символ " ’ ").
ПОСЫЛКА ИСХОДЯЩЕЙ ПОЧТЫ - КОМАНДЫ /SEND И /SENDALL
Примеры команды /IMPORT:
/IMPORTU="Мой ящик1";FOLDER="Друзья и знакомые\Sam";IN=C:\infiles\sam\*.MSG
/IMPORTF="\\Мой ящик 1\Business\Unsorted";UNIX;FILE=C:\infiles\unsorted\*.mbx;READ
ПРИМЕЧАНИЯ:
1. Для разделения параметров используйте точку с запятой (символ ";").
Не используйте пробелы между параметрами, когда используете команду /IMPORT
в команднойстроке, потому что отделенный пробелом параметр будет
обрабатыватьсякак следующаякоманда и не будет понят программой должным
образом.
2. Если значение содержит пробелы, поместите его в кавычки. Если
значение содержит кавычки, Вы должны использовать апострофы (символ " ’ ").
ПРИМЕРЫ КОМАНДЫ /EXPORT:
/EXPORTU="Мой ящик 1";F="Друзья и знакомые\Sam";DIR=C:\InFiles\Sam\;S=-20
/EXPORTF="\\Ящик1\Business\Unsorted";UNIX;O=C:\infiles\unsorted\mail.mbx;UNREAD
ПРИМЕЧАНИЯ:
1. Для разделения параметров используйте точку с запятой (символ ";").
Не используйте пробелы между параметрами, когда используете команду /EXPORT
в команднойстроке, потому что отделенный пробелом параметр будет
обрабатыватьсякак следующаякоманда и не будет понят программой должным
образом.
2. Если значение содержит пробелы, поместите его в кавычки. Если
значение содержит кавычки, Вы должны использовать апострофы (символ " ’ ").
Отображение папки - команда /FOCUS
Команда /FOCUS позволяет автоматически открывать определенную папку в
основном окне программы The Bat!. Эта команда особенно полезна при запуске
программы. Синтаксис команды /FOCUS:
/FOCUS [parameter1[;parameter2[;parameter3 [. ]]]
Возможные параметры:
USER=значение или U=значение. Значение - название ящика, одна из папок
которого должна быть отображена. Если параметр FOLDER не определен, будет
открыта папка Inbox данного ящика.
PASSWORD=значение или P=значение. Значение - пароль. Используется в том
случае, если ящик защищен паролем.
FOLDER=значение или F=значение. Значение - путь к отображаемой папке в
ящике.Если путь не включает имя ящика, The Bat! будет просматривать все
ящики в поисках папки с таким именем; первая найденная папка будет открыта.
Если заданная папка не найдена, будет открыта папка Inbox указанного ящика.
Примечания:
1. Для разделения параметров используйте точку с запятой (символ ";").
Не используйте пробелы между параметрами, когда используете команду /FOCUS
в команднойстроке, потому что отделенный пробелом параметр будет
обрабатыватьсякак следующая командаи не будет понят программой должным
образом.
2. Если значение содержит пробелы, поместите его в кавычки. Если
значение содержит кавычки, Вы должны использовать апострофы (символ " ’ ").
ПРИМЕЧАНИЯ:
1. Для разделения параметров используйте точку с запятой (символ ";").
Не используйте пробелы между параметрами, когда используете команду /MAIL в
командной строке, потому что отделенный пробелом параметр будет
обрабатыватьсякак следующаякоманда и не будет понят программой должным
образом.
2. Если значение содержит пробелы, поместите его в кавычки. Если
значение содержит кавычки, Вы должны использовать апострофы (символ " ’ ").
ВЫПОЛНЕНИЕ НЕСКОЛЬКИХ КОМАНД ИЗ ФАЙЛА - КОМАНДА /BATCH
Если Вам необходимо выполнить много команд несколько раз, команда /BATCH
сэкономит Вамвремя.Эта команда позволяет выполнять несколько команд,
определенных в текстовом файле; каждая команда записывается в одну строку.
Синтаксис команды /BATCH:
/BATCH:
Например, если Вы должны проверить ваш ящик и послать из него исходящую
почту,Вы можете создать командный файл C:\The Bat!\CheckMail.BAT, который
будет содержать три строки:
/CHECKMyAccount
/SENDMyAccount
/SMARTEXIT
Чтобы выполнить эти команды из командной строки, Вы можете запустить The
Bat! с параметром /BATCH:C:\The Bat!\CheckMail.BAT
Программирование и регулярные выражения
Тире (%-) можно вставлять в конце любой строчки шаблона, чтобы объединить ее со следующей. Если этот макрос указан в середине строки, программа просто удалит его из текста письма.
Установка значения переменной. Часть name - это имя переменной, которое может содержать только буквы, цифры и знак подчёркивания. Переменные могут быть полезны при использовании вставки одинакового текста (например, рассчитываемого с помощью вычислений или регулярных выражений) в разные части письма. Они также помогают временно сохранить результат выполнения макроса. Примечание: То же, что и макрос %VARname.
Установка значения переменной. Часть name - это имя переменной, которое может содержать только буквы, цифры и знак подчёркивания. Переменные могут быть полезны при использовании вставки одинакового текста (например, рассчитываемого с помощью вычислений или регулярных выражений) в разные части письма. Они также помогают временно сохранить результат выполнения макроса.
Позволяет установить регулярное выражение для поиска в тексте, на который указывает макрос %REGEXPMATCH
n - порядковый номер подстроки, которую необходимо вставить в текст письма (она является результатом поиска в заданной области, на которую ссылались макросы REGEXPMATCH или REGEXPBLINDMATCH). SUBPATT='0' возвращает результат работы всего регулярного выражения, 1 - результат его первой части, 2 - второй и т.д.
Работает аналогично %REGEXPMATCH (см. ниже), только найденный текст не вставляется в тело письма, а сохраняется в специальной внутренней переменной (его можно извлечь при помощи макроса %SUBPATT="n")
Результат поиска в указанном тексте на основе регулярного выражения, установленного ранее при помощи макроса %SETPATTREGEXP="выражение"
Позволяет осуществить поиск в тексте исходного письма на основе регулярного выражения (возвращает результат в виде цитаты)
Позволяет осуществить поиск в тексте исходного письма на основе регулярного выражения
Позволяет добавить в шаблон комментарий, чтобы пояснить принцип его работы
Оператор сравнения, который позволяет вставлять в текст письма различные фрагменты в зависимости от выполнения заданного условия: может принимать значение '=' (равно), '>' (больше), '' (не равно). Таким образом, если = или > или < или <>, используется фрагмент из секции . Если это не так, программа вставляет в текст письма содержимое секции .
Пример: %IF:"%TIME"'17:00':'вечер':'день'" Не забывайте о том, что в качестве переменных, секций и можно использовать не только фрагменты текста. Этот оператор поддерживает также быстрые шаблоны и результат выполнения других макросов, причем их можно вызывать рекурсивно.
То же что и макрос IF, но с чувствительностью к регистру символов.
То же что и макрос IF, но для числовых параметров. Примечание: Если параметр не может быть сконвертирован в число, то он будет принять равным нулю. Примечание: Числа должны быть в строгой форме – без разделителя тысяч и со знаком точки (.) в качестве десятичного разделителя.
Позволяет рассчитывать простые математические формулы. Смотрите раздел Быстрые расчеты для получения информации по правилам написания выражений
Перечень макросов по группам:
Полный список - Полный список макросов в алфавитном порядке
Адресная информация - Почтовые адреса, фамилия, имя отправителей и получателей
Текст и тема - Макросы, управляющие текстом и темой создаваемого письма
Формат письма - Параметры письма, приложенные файлы
Дата и время - Дата и время письма
Заголовки письма - Содержимое заголовков письма
Адресная книга - Информация об отправителе и получателе из адресной книги
Заметил, что здесь много сложных и интересных статей про Win cmd и Regex, но гораздо меньше чего-то простого, с чего можно начать знакомство с этими мощными инструментами.
Идея написания этого урока возникла, когда я понял, что наверняка такие же задачи пытается решить еще кто-то и возможно такая статейка поможет кому-нибудь поменять рутинный копи-паст на гораздо более интересный и технологичный метод написания кода.
Итак, вводная:
Небольшой сайт. Вбиваю туда ссылки на изображения, причем в каждую ссылку должна быть вложена миниатюра большого изображения. Т.е., затронем вопросы как автоматически создать список файлов в папке и как быстро добавить список файлов в html код страницы.
Изображения разложил в папочке на локальном диске, но там их много и лень копипастить, да и сколько можно? Внезапно обнаружил, что пальцы уже набирают в комстроке:
dir /b /A:-D> spisok.txt
Dir создаст список файлов, /b оставит только имена файлов и их расширения, /A:-D выведет только файлы, но не папки, > загонит это все в текстовой файл с названием spisok.txt.
Теперь получившийся файл открываем в Notepad++ (хотя можно наверное и в редакторе с аналогичным функционалом), где делаем следующее:
Ctrl+H, открывается окно c закладкой Replace,
Find What:
(.*)\.(.*)
Replace with:
Внизу ставим галочку Regular Expression, а Wrap around и .matches newlin убираем.
Жмем Replace All.
Однако, если в названии файлов содержится не одна тока, то возникнут проблемы. См. конец статьи и комментарии.
Команда, записанная в Find делает следующее:
выбирает в найденной строке все, что до точки, затем ее саму и все после нее. Причем все, что до точки сохраняется под номером 1, а все, что после нее, под номером 2. Мы воспользуемся этим позже.
Далее, команда замещает выбранную строку на то, что записано в Replace with, т.е. на тег ссылки, в котором прописан путь и в который вложен тег картинки c миниатюрой большого изображения.
Теперь, рассмотрим каждую строчку.
(.*)\.(.*)
. — означает найти любой символ
* — означает, взять как можно больше
т.е. «.*» будет означать примерно следующее: найти и выделить как можно больше символов, любых. Т.е. выделить всю строку. И эта команда все и выделит, если бы не:
\. — означает выделить точку.
Однако, точка только что была описана мной как команда, выделяющая любой символ. Дело в том, что Regex использует символ «\» как команду. Эта команда означает одно из двух:
— если за этим символом идет какой-то спецсимвол, который сам используется как команда, то вывести этот символ сам по себе, а не команду. Т.е. «.» он воспримет как «искать любой символ», а «\.» просто как точку. Если ввести просто Бэкслеш «\» то он будет ожидать, что это команда, а двойной бэкслеш «\\» выведет просто сам символ «\».
— если за этим символом идет число, то скопировать сюда то, что было в скобке в поиске (вместо «\1» будет помещено то, что попало в первую слева скобку при поиске, т.е. имя файла до точки, а вместо «\2», то, что во вторую, т.е. расширение файла, и т.д.) — этим мы воспользуемся чуть позже.
Иными словами, если записать это:
(.*)\.(.*)
вот так:
.*\..* ,
то результат поиска не изменится, но Notepad++ никак не отметит для себя и для нас то, что он нашел до точки и после нее. Скобки это как маркеры, разделяющие строку, в данном случае на две части.
— где \1 вставляет название файла в атрибут alt, а после него добавляется закрывающий тэг.
Поскольку расширение файла от его имени отделяется всегда только точкой, то ее я «запоминать» не приказываю (т.е. в поиске не заключаю в скобки), но, по сути, можно было бы записать и так:
Find What: (.*)(\.)(.*)
Replace With:
Результат будет тот же. Но это выражение гибче, потому, что можно во вторую скобку вписать, например:
Так можно выделить начало и конец какого-то кода или слова, где посередине расположен соответствующий символ. Но это уже за пределами данной статейки.
Благодарю за внимание, надеюсь, кому-нибудь было полезно узнать то, что я здесь изложил.
Ресурсы:
UPD
Если в названии файлов содержится не одна тока, то возникнут проблемы. Простейшим способом избежать такой сложности будет переименовать файлы так, чтобы там не было точек нигде, кроме расширений (графический редактор с функцией массового переименовывания файлов подойдет).
Более продвинутый вариант предложен в ходе обсуждения этой статьи:
^(.*)\.([^\.]+)$ ©FilimoniC
Выделит все, до последней точки в имени файла. Т.е. до той, которая находится перед расширением.
Еще более сложный пример смотрите в обсуждении от юзера RumataEstora
Искал на форуме подходящую тему, но не нашел. Прошу прощения если тема повторная.
Хотелось бы узнать о всех возможных регулярных выражениях в командной строке Windows.
например мне известно что для команды copy и where возможно применить следующие выражения:
Выражение для команды FindStr это другая тема.
Что мне ещё не известно? Пожалуйста просветите =)
Регулярные выражения
Подскажите пожалуйста,что означает этот набор в поиске регулярных выражений. findstr выводит все.
Регулярные выражения
Привет, подскажите как использовать регулярные выражения для поиска файлов? Вообщем необходимо.
Регулярные выражения в переменных
Почему работает set p=rtt tto echo %p:* =% ::tto Но не работает set p=rtt tto echo %p.
Регулярные выражения при задании искомых строк
MS DOS 6.22 Norton Commander. Пример из учебника (справка F1 вроде как подтверждает.
рег. выражения в среде Windows есть в командной оболочке powershell,
в интерпретаторе cmd их нет.
символы '*' и '?' в именах файлах к рег. выражениям не относятся,
в среде Unix их использование называют 'globbing'.
тем не менее утилита findstr поддерживает некое подобие рег. выр.
Хорошо, спасибо за разъяснение )
В примере с командами COPY и WHERE какие ещё шаблоны\комбинации к файлам возможно применить?
никаких потайных символов, отсутствующих в сопроводительной документации и доступных только избранным
этого мира, команды copy и where не имеют.
Добавлено через 4 минуты
( упреждая вопрос, а я то откуда это знаю, отвечаю,- я избранный )
Mekuya,
Символы "*" и "?" в терминах cmd называют wildcard characters:
"*" Matches zero or more characters
"?" Matches a single character
Кроме этих символов в масках можно использовать ещё два символа:
">" Matches any single character or, upon encountering a period or end of name string, advances the expression to the end of the set of contiguous >
" (но эти символы известны даже не всем избранным )
Mekuya,
Символы "*" и "?" в терминах cmd называют wildcard characters:
"*" Matches zero or more characters
"?" Matches a single character
Кроме этих символов в масках можно использовать ещё два символа:
">" Matches any single character or, upon encountering a period or end of name string, advances the expression to the end of the set of contiguous >
" (но эти символы известны даже не всем избранным )
Smitis,
но папку ".aaa" - выводит
Это ведь недокументированные символы "диких карт" - есть такое предположение, что документировать их не стали потому, что собственно, "до ума" их не довели, просто оставили как есть.
А вообще, можно некое подобие справки и примера глянуть здесь
И чтобы уж совсем не ломать голову и не забивать мозг ненужной информацией, лучше воспользоваться этим советом
Регулярные выражения
Здравствуйте. Проблема с регулярными выражениями Выводить вопрос, какую папку создать и на каком.
-replace регулярные выражения
"вторник понедельник воскресенье суббота пятница четверг среда" -replace ".+", ('''$0''').
Регулярные выражения с новой строки
Есть скрипт в котором используются регулярные выражения . Код: Пример $group.
Выделить из строки имя компьютера, используя регулярные выражения
День добрый! Никак не удается мне один фокус. Имеем таку строчку: Нужно вытащить Причем.
ЧПУ. Замена строк, регулярные выражения. Как правильно использовать переменную в регулярные выражения ?
Здравствуйте! Решил реализовать ЧПУ на своем сайте. Первый этап это замена всех реальных ссылок на.
I'm looking for way to rename multiple files with a batch job. Yes, I know there are many Applications around which can achieve this. But I need an automated way, something like a Batch File which I can call from a Scheduler (SOS Job Scheduler). We need to rename hundreds of files daily!
The Goal is to set the 17-25 charcaters at the beginning of the file.
- 00010028229720270014468393_TB-E.pdf -> 00144683930001002822972027_TB-E.pdf
- 000100282297202700144683931ESR-AF.pdf -> 001446839300010028229720271ESR-AF.pdf
- 00010031141040250016353371ESR-AF.pdf -> 00163533700010031141040251ESR-AF.pdf
- 0001003167580004001667217KTO.pdf -> 0016672170001003167580004KTO.pdf
Here an example which is more clearer:
0001 002822972 027 001446839 _TB-E .pdf -> 001446839 0001 002822972 027 _TB-E .pdf
Wel, sorry - it isn't more clearer. What is the formula for renaming? In each case, the first 16 characters are removed and then replaced - where? In the first and fourth instance, it's between (the next string of numerics) and (the remainder from the first non-numeric). In the second and third, the numeric before the first non-numeric is included in the "tail" - but this isn't the case for the fourth.
In the lower example I broke the filename in spaces, just to show you which part (Bold) to put in the beginning of the file. In Each File the part from 17 to 25 Character should be moved at the beginning of the file! It's always the part from 17 to 25 Character, which should be moved! Just the Position is important!
3 Answers 3
The required REN commands are merely ECHO ed for testing purposes. After you've verified that the commands are correct, change ECHO REN to REN to actually rename the files.
Note that the very first example you've presented has . 393_TB-E. in the transformed version, that 3 is missing.
This can be accomplished very simply with the help of REPL.BAT - a hybrid JScript/batch utility that performs a regex search and replace on each line from stdin and writes the result to stdout. The utility uses only native scripting capabilities that are available to any modern Windows machine from XP onward; no 3rd party executable required. Complete documentation is embedded within the script.
Assuming REPL.BAT is somewhere within your PATH:
Using only native batch commands, without any CALL:
If you know that none of your file names contain the ! character, then you can simply enable delayed expansion at the top, and remove both SETLOCAL and ENDLOCAL from within the loop.
Both solutions above rely on the fact that * at the end of the target name will preserve the remainder of the original file name. See How does the Windows RENAME command interpret wildcards? for more info.
Читайте также: