Войти

Показать полную графическую версию : [решено] Скопировать названия файлов из папки и добавить символ в конец названия


kiber31
16-08-2012, 18:27
Всем привет!
Есть задача, необходимо составить список файлов в определенной папке и записать в файл, но при этом в конец имени (после расширения) каждого файла необходимо добавить символ "=". Т.е. необходимо получить:
Файл1.txt=
Файл2.txt=
Файл3.txt=

Список файлов я копирую в файл, но вот как добавить там в каждую строчку символ "=", не могу сообразить.
Копирую следующим кодом:

@echo off
setlocal

set "list="D:\ini\docs""

for %%i in (%list%) do 1>>list.txt dir /b /a "%%~i\*.*"

Anonymоus
16-08-2012, 19:48
For /F "delims=" %%A In ('Dir "D:\Temp\*" /A-D /B') Do (Echo %%~A=)>>file.txt

kiber31
17-08-2012, 06:58
Anonymоus,
То, что надо! Спасибо большое!
А можно немного усложнить задачу? Скажем есть несколько папок, в них лежат файлы,можно проделать все тоже самое, т.е. скопировать имена файлов в один файл, но разделить их именами папок в которых они находятся, причем не просто разделить, а скажем сопоставить короткому имени папки, другое длинное слово? Например:
Есть четыре папки: ds, she, bs и exch и в них есть файлы. Необходимо сопоставить каждому имени папки новое название и создать структуру. Т.е.

bs=[backs_create]
ds=[docserver_create]
she=[scheduler_create]
exch=[exchange_create]

Надо чтобы создался один текстовый файл в котором будет следующая структура:

[backs_create]
File1=
File2=
File3=

[docserver_create]
File1=
File2=
File3=

[scheduler_create]
File1=
File2=
File3=

[exchange_create]
File1=
File2=
File3=

Anonymоus
17-08-2012, 13:09
kiber31, конечно можно. Путь (как абсолютный так и относительный) и его буквенный алиас задаются сверху скрипта.

@Echo Off

:: Здесь задаются папки и соответствующие им обозначения в формате
:: путь#обозначение
Set @Path1=D:\Projects\Proxy\parser\bin#Proxygrabber
Set @Path2=D:\Projects\GAE\webdav#Storage
Set @Path3=D:\Software\Perl\bin#Perl5
Set @Path4=D:\FOnline SDK\Tools\Mapper#Fallout map editor

:: Удаляем старый список, если есть
Del "filelist.log" 2>nul
:: Перебираем все заданные выше пути, выделяя из них нужное
For /F "tokens=2,3 delims=#=" %%A In ('Set @Path') Do (
rem Добавляем начало секции
>>"filelist.log" Echo [%%B]
rem Создаем листинг файлов
For /F "delims=" %%C In ('Dir "%%A\*" /A-D /B') Do (Echo %%C=)>>"filelist.log"
rem Отделяем следующую секцию пустой строкой
>>"filelist.log" Echo.
)
Pause&Exit

kiber31
17-08-2012, 13:56
Anonymоus, все вроде работает, только кроме одного момента, имя секции пустое, т.е. просто скобки [] и все. Может ты делал это под другую структуру папок ? Тогда возникает вопрос под какую ?)

Anonymоus
17-08-2012, 14:00
kiber31, сверху ведь указаны пути, естественно, что я тестировал их на своей структуре папок.
То есть, тебе нужно взять к примеру, первую строку:
Set @Path1=D:\Projects\Proxy\parser\bin#Proxygrabber
Заменить "D:\Projects\Proxy\parser\bin" на свой путь, к примеру "data\bs" (обязательно без слэша на конце), после пути поставить знак "#" и написать имя алиаса - т.е. то, что пойдет в [скобки].

kiber31
17-08-2012, 14:04
Anonymоus, Ааа, ступил, все заработало! Супер!! Ты гений!! Спасибо тебе огромное!!!!




© OSzone.net 2001-2012