Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Скопировать названия файлов из папки и добавить символ в конец названия (http://forum.oszone.net/showthread.php?t=240734)

kiber31 16-08-2012 18:27 1971395

Скопировать названия файлов из папки и добавить символ в конец названия
 
Всем привет!
Есть задача, необходимо составить список файлов в определенной папке и записать в файл, но при этом в конец имени (после расширения) каждого файла необходимо добавить символ "=". Т.е. необходимо получить:
Файл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 1971425

Код:

For /F "delims=" %%A In ('Dir "D:\Temp\*" /A-D /B') Do (Echo %%~A=)>>file.txt

kiber31 17-08-2012 06:58 1971605

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 1971755

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 1971795

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

Anonymоus 17-08-2012 14:00 1971803

kiber31, сверху ведь указаны пути, естественно, что я тестировал их на своей структуре папок.
То есть, тебе нужно взять к примеру, первую строку:
Код:

Set @Path1=D:\Projects\Proxy\parser\bin#Proxygrabber
Заменить "D:\Projects\Proxy\parser\bin" на свой путь, к примеру "data\bs" (обязательно без слэша на конце), после пути поставить знак "#" и написать имя алиаса - т.е. то, что пойдет в [скобки].

kiber31 17-08-2012 14:04 1971808

Anonymоus, Ааа, ступил, все заработало! Супер!! Ты гений!! Спасибо тебе огромное!!!!


Время: 14:22.

Время: 14:22.
© OSzone.net 2001-