|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Переименование файла по данным из самого файла |
|
CMD/BAT - [решено] Переименование файла по данным из самого файла
|
Старожил Сообщения: 169 |
Профиль | Отправить PM | Цитировать
Здравствуйте,
Подскажите пожалуйста как через bat решить следующую задачу: Есть папка например test, внутри папки test текстовые файлы и еще папки с текстовыми файлами. Каждый текстовый файл имеет спец символы между которыми находится текст которым необходимо заменить наименование файла, расширение необходимо соответственно оставить. Пример_1 O=первый текст, CN="второй "текст"", или CN="второй "текст"", или CN=второй текст, или CN=второй "текст", или CN="второй текст", Причем кавычки было бы здорово отбросить, или они просто учитываться не будут при копирование в имя файла? Пример_2 лалала O=лалала, CN=лала, Email=d@yandex.ru лалаолваолаолала » Пример_3 файл может выглядеть и так ahgjhfjkkffgdfggjk dsadfasdfdffadfsf O="djkfhsdjkf", djfhjdfhjkdhfk, CN=dfhdjf ddhfjdhfj hjdfjhddjf, Email=d@yandex.ru sdhfjksdhfjksdfasdf asdfasdfafsdf 1.Между O и CN необходимо добавить _ если возможно. Пример первый текст_второй текст.txt 2.Если невозможно сделать переименование всех текстовых файлов в подкаталогах, то как сделать переименование хотя бы одного текстового файла находящегося в корне папки test. 3.Файлы соответственно должны оставаться в своей папке и не менятся. 4.Спец символы O= и CN= могут находится в любом месте в документе каждый спец символ закрывается запятой , между спецсимволом и запятой есть текст который нужно использовать в переименовании текстового файла. 5.Спец символы идут в следующем порядке первым в документе идет O= потом CN= |
|
Отправлено: 09:14, 21-04-2011 |
Старожил Сообщения: 169
|
Профиль | Отправить PM | Цитировать Да конечно для первого примера работает
А для второго примера как необходимо сделать ? Пример 2 лалала O=лалала, CN=лала, Email=d@yandex.ru лалаолваолаолала » Вот еще пример того как может выглядеть файл Пример 3 sdhjkf hjsdafjajkdh kjaf hdjk aj hajkdsfhjkdhfkjfhfhe dfasdfdf O="djkfhsdjkf", djfhjdfhjkdhfk, CN=dfhdjf ddhfjdhfj hjdfjhddjf, Email=d@yandex.ru asdfasdfasdfasd asdkjfhsdjkadskfhjkadsjfkasdkfkasdf Спец символы O= и CN= могут находится в любом месте в документе каждый спец символ закрывается запятой , между спецсимволом и запятой есть текст который нужно использовать в переименовании текстового файла. |
Последний раз редактировалось dark-------13, 21-04-2011 в 13:54. Отправлено: 13:27, 21-04-2011 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Цитата dark-------13:
@echo off SETLOCAL EnableDelayedExpansion set $DIR=C:\TEST chcp 1251>nul for /r "%$DIR%" %%a in (*.txt) do (set "$CN="& set "$O=" for /f "delims=" %%b in ('findstr/rc:"\<CN=" "%%a"') do set "$b=%%b"& set "$b=$!$b:* CN=CN!"& set "!$b:"=! for /f "delims=" %%b in ('findstr/rc:"\<O=" "%%a"') do set "$b=%%b"& set "$b=$!$b:* O=O!" & set "!$b:"=! for /f "delims=," %%b in ("!$CN!") do set "$CN=%%b" for /f "delims=," %%b in ("!$O!") do set "$O=%%b" ren "%%a" "!$CN!_!$O!%%~xa">nul 2>&1||(chcp 866>nul& echo/ echo/File name "!$CN!_!$O!%%~xa" is busy^^!&echo/File "%%a" skipped.& chcp 1251>nul )) |
|
Отправлено: 18:08, 21-04-2011 | #12 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Интерфейс - [решено] Переименование файла | mishkinstvo | Microsoft Windows 2000/XP | 5 | 10-12-2021 22:08 | |
CMD/BAT - [решено] Переименование файла и напоминание юзеру | Serg2010 | Скриптовые языки администрирования Windows | 7 | 13-08-2009 01:50 | |
[решено] Переименование файла | 11943499 | AutoIt | 1 | 24-07-2009 20:06 | |
Переименование Файла из его свойств | win2005 | Хочу все знать | 4 | 09-01-2009 14:21 | |
Доступ - Как запретить переименование определенного файла? | SavmiN | Microsoft Windows 2000/XP | 5 | 04-05-2008 20:44 |
|