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

Компьютерный форум 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

 

Старожил


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

Профиль | Отправить 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
Благодарности: 1563

Профиль | Отправить 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



Компьютерный форум 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




 
Переход