Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Переименование файла по данным из самого файла

Ответить
Настройки темы
CMD/BAT - [решено] Переименование файла по данным из самого файла

Старожил


Сообщения: 169
Благодарности: 4

Профиль | Отправить PM | Цитировать


Изменения
Автор: dark-------13
Дата: 21-04-2011
Описание: Добавлены данные о структуре документа
Здравствуйте,
Подскажите пожалуйста как через 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

 

Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Цитата dark-------13:
Каждый текстовый файл имеет спец символы между которыми находится текст »
Немного путанно, что за "спец символы"?.. "CN=" и ","?.. Где располагаются эти спецсиволы по отношению к строке/тексту файла, сколько таких строк в файле? Короче, требуется более детальное описание формата файлов, либо наиболее общий пример файла, от которого можно отталкиваться (само собой, в тегах CODE)

Отправлено: 09:29, 21-04-2011 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Старожил


Сообщения: 169
Благодарности: 4

Профиль | Отправить PM | Цитировать


Среди текста документы есть символы CN= далее текст и потом запятая, О= помом текст и сразу запятая т.е. между символами СN= и запятой есть текст, и символами O= и запятой есть текст

Пример
O=текст,
CN=текст2,

В итоге должно быть текст_текст2.txt

Последний раз редактировалось dark-------13, 21-04-2011 в 12:51.


Отправлено: 09:50, 21-04-2011 | #3


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Цитата dark-------13:
О= помом текст и сразу запятая »
- в строке после последней запятой еще может быть текст?
- такие строки (CN=/O= ) не могут повторяться более одного раза?
- в какой кодировке файлы? (DOS/WIN/UTF/Unicode/...)

Отправлено: 10:00, 21-04-2011 | #4


Старожил


Сообщения: 169
Благодарности: 4

Профиль | Отправить PM | Цитировать


После последней запятой идет Email= (ПробелEmail= )

Кодировка win

Симводы CN= O= не повторяются


Заранее спасибо.

Отправлено: 10:40, 21-04-2011 | #5


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


на пробу:
Код: Выделить весь код
@echo off
SETLOCAL EnableDelayedExpansion

set $DIR=C:\TEST

chcp 1251>nul
for /r "%$DIR%" %%a in (*.txt) do (
 for /f "delims=," %%b in ('findstr/bc:"CN=" /c:"O=" "%%a"') do set $%%b
 set $CN=!$CN:"=!
 set $O=!$O:"=!
 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))
Это сообщение посчитали полезным следующие участники:

Отправлено: 11:39, 21-04-2011 | #6


Старожил


Сообщения: 169
Благодарности: 4

Профиль | Отправить PM | Цитировать


Нет не работает - с файлом ничего не происходит.

Отправлено: 12:16, 21-04-2011 | #7


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


- создал папку C:\TEST
- создал в папке текстовый файл "1.TXT" (WIN):
Код: Выделить весь код
1
CN="текст" 2,user1@mail.ru
2
O=текст "3",user2@mail.ru
- запустил батник
- новое имя файла: "текст 2_текст 3.txt"

Отправлено: 12:27, 21-04-2011 | #8


Старожил


Сообщения: 169
Благодарности: 4

Профиль | Отправить PM | Цитировать


Извиняюсь, что ввел вас в заблуждение

2 и 3 текст

Пример файла вот такой

лалала O=лалала, CN=лала, Email=d@yandex.ru
лалаолваолаолала

Последний раз редактировалось dark-------13, 21-04-2011 в 12:50.


Отправлено: 12:30, 21-04-2011 | #9


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Цитата dark-------13:
лалала O=лалала, CN=лала, Email=d@yandex.ru
лалаолваолаолала »
во всех предыдущих примерах O=/CN= стояли в начале строк, причем разных, с моим примером работает?

Отправлено: 12:52, 21-04-2011 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Переименование файла по данным из самого файла

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Интерфейс - [решено] Переименование файла 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




 
Переход