Страница 1 из 1

Нужно вывести названия песен в текстовый файл

Добавлено: Сб июн 25, 2011 01:08
gatalsky2010
Есть папка music, в которой лежит много папок с названиями групп, и в каждой папке с названием группы лежат её песни. Вопрос: возможно ли вывести в текстовом виде (в txt файле) инфу какие папки и какие в них файлы (песни) лежат в папке music?

Добавлено: Сб июн 25, 2011 01:58
Flasher

Добавлено: Вс июн 26, 2011 20:25
Avada
Заголовок сокращён. Тема перенесена в "Автоматизацию".

Добавлено: Пн июн 27, 2011 14:37
Batya
gatalsky2010
vbs-скрипт:

Код: Выделить всё

'=====================================================================
' Формирование для каждой папки из файла-списка txt-файла,
'   содержащего список вложенных файлов
'
' Параметры:
' {файл-список}
'
' Примеры параметров при вызове из TC:
' %L
'=====================================================================
Option Explicit
Dim FSO, F, F1, FF
Set FSO = CreateObject("Scripting.FileSystemObject")

With FSO.OpenTextFile(WScript.Arguments(0), 1)
  Do While Not .AtEndOfStream
    F = Trim(.ReadLine)
    If F <> "" Then
      If FSO.FolderExists(F) Then
        F1 = FSO.GetFolder(F).Path & ".txt"
        Set FF = FSO.OpenTextFile(F1, 2, True)
        ForFolder FSO.GetFolder(F), FF
        FF.Close
      End If
    End If
  Loop
  .Close
End With

Set FF  = Nothing
Set FSO = Nothing
Wscript.Quit()

Sub ForFolder(pFolder, pFile)
  Dim lF
  For Each lF In pFolder.Files
    ForFile lF.Path, pFile
  Next
  For Each lF In pFolder.SubFolders
    ForFolder lF, pFile
  Next
End Sub

Sub ForFile(pFilePath, pFile)
  pFile.WriteLine pFilePath
End Sub

Добавлено: Пн июн 27, 2011 14:40
Flasher
Batya
А разве это не то, что требуется? Туда, кстати, вопрос и был перенесён.

Добавлено: Пн июн 27, 2011 15:07
Batya
Flasher
Уж и не знаю, то ли это, или не то.
Мне было проще написать новый скрипт, чем перечитывать несколько страниц. Тем более, что название того топика немного не соответствует поставленной здесь задаче. И автор этого топика написал в той теме, что не смог разобраться.

[mod="Avada"]Последующий оффтоп удалён. Оргвыводы — здесь.[/mod]

Добавлено: Пн июл 04, 2011 22:00
Flasher
Batya писал(а):Тем более, что название того топика немного не соответствует поставленной здесь задаче.
Похоже поставленную здесь задачу ты сам неверно понял. В той теме как раз есть решение для отображения в файле структуры одной папки (в данном случае music), а ты написал скрипт для вывода списка файлов внутри выделенных папок с рекурсией без поддиректорий.

Добавлено: Пн июл 04, 2011 22:36
Batya
Flasher писал(а):для отображения в файле структуры одной папки
Ну, так и не выделяй ничего, если тебе так надо. Скрипт будет работать и для папки под курсором.
Flasher писал(а):внутри выделенных папок с рекурсией без поддиректорий
Ну, уж с рекурсиями то я уже давно научился работать:
Batya писал(а):Sub ForFolder(pFolder, pFile)
...
For Each lF In pFolder.SubFolders
ForFolder lF, pFile
Next
End Sub
[offtop]
Flasher
Неужели нет продуктивных тем для обсуждения, чем перемывать косточки?
[/offtop]

Добавлено: Пн июл 04, 2011 22:44
Flasher
Batya писал(а):Ну, так и не выделяй ничего, если тебе так надо. Скрипт будет работать и для папки под курсором.
Я в курсе. При чём тут это?
Batya писал(а):Ну, уж с рекурсиями то я уже давно научился работать:
И об этом я тоже прекрасно знаю. Опять же - что с того? Ты, прежде чем указывать кусок кода, куда дел предшествующий кусок цитаты?:
Flasher писал(а):а ты написал скрипт для вывода списка файлов ...
Точнее для вывода имён с полными путями. В общем, если тебе станет от этого легче: твой скрипт был испытан - результат не соответствует поставленой задаче.
Структурное отображение - это папки и файлы под ними, а не только файлы с путями сплошным списком, в котором почти невозможно разобраться. Так яснее? Можно было бы хоть пустыми строками отделять пути к файлам для разных папок. Хотя, насколько я понял, там нужны относительные пути, а не полные. ИМХО, в указанной мной теме есть именно то, что требовалось.

[off]
Batya писал(а):Неужели нет продуктивных тем для обсуждения, чем перемывать косточки?
Указание на неправильное решение - это промывание косточек? Для меня это желание помочь в поиске верного решения. Странно, что для тебя иначе...
[/off]

Добавлено: Вт июл 05, 2011 09:16
Batya
Flasher
ОК. Теперь я понял, о чём ты. Так бы сразу и писал.
Да, моё решение, вероятнее всего, не соответствует поставленной задаче. Но менять скрипт, указанный в этой теме не вижу смысла, т.к. автор топика, видимо, удовлетворился решением по твоим ссылкам.
Пусть будет ещё одна "вариация на тему".

Добавлено: Вт июл 05, 2011 13:19
Flasher
Batya писал(а):Так бы сразу и писал.
Я рассчитывал, что в предыдущем сообщении информации достаточно. Я там даже подчеркнул нужное.
Насчёт смены - дело хозяйское. Я не против наличия данного скрипта на форуме. Может, кому-то для инвентаризации или ещё чего пригодится. Главное, факт нестыковки с задачей подтверждён, автор молчит, значит, всё ок.