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

Обсуждение вопросов автоматизации Total Commander с помощью сторонних программ и скриптовых технологий.

Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер

Ответить
gatalsky2010
Сообщения: 40
Зарегистрирован: Вс дек 12, 2010 22:20

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

Сообщение gatalsky2010 »

Есть папка music, в которой лежит много папок с названиями групп, и в каждой папке с названием группы лежат её песни. Вопрос: возможно ли вывести в текстовом виде (в txt файле) инфу какие папки и какие в них файлы (песни) лежат в папке music?
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Аватара пользователя
Avada
Сообщения: 10541
Зарегистрирован: Пт авг 01, 2008 16:17
Откуда: Россия, Саратов

Сообщение Avada »

Заголовок сокращён. Тема перенесена в "Автоматизацию".
Даже самая богатая фантазия
Не представит себе наши безобразия.
Аватара пользователя
Batya
Сообщения: 2236
Зарегистрирован: Ср дек 15, 2004 09:51
Откуда: Москва, Россия

Сообщение 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
Нет, я не сплю. Я просто медленно моргаю.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Batya
А разве это не то, что требуется? Туда, кстати, вопрос и был перенесён.
Аватара пользователя
Batya
Сообщения: 2236
Зарегистрирован: Ср дек 15, 2004 09:51
Откуда: Москва, Россия

Сообщение Batya »

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

[mod="Avada"]Последующий оффтоп удалён. Оргвыводы — здесь.[/mod]
Нет, я не сплю. Я просто медленно моргаю.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Batya писал(а):Тем более, что название того топика немного не соответствует поставленной здесь задаче.
Похоже поставленную здесь задачу ты сам неверно понял. В той теме как раз есть решение для отображения в файле структуры одной папки (в данном случае music), а ты написал скрипт для вывода списка файлов внутри выделенных папок с рекурсией без поддиректорий.
Последний раз редактировалось Flasher Пн июл 04, 2011 23:19, всего редактировалось 1 раз.
Аватара пользователя
Batya
Сообщения: 2236
Зарегистрирован: Ср дек 15, 2004 09:51
Откуда: Москва, Россия

Сообщение Batya »

Flasher писал(а):для отображения в файле структуры одной папки
Ну, так и не выделяй ничего, если тебе так надо. Скрипт будет работать и для папки под курсором.
Flasher писал(а):внутри выделенных папок с рекурсией без поддиректорий
Ну, уж с рекурсиями то я уже давно научился работать:
Batya писал(а):Sub ForFolder(pFolder, pFile)
...
For Each lF In pFolder.SubFolders
ForFolder lF, pFile
Next
End Sub
[offtop]
Flasher
Неужели нет продуктивных тем для обсуждения, чем перемывать косточки?
[/offtop]
Нет, я не сплю. Я просто медленно моргаю.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

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

[off]
Batya писал(а):Неужели нет продуктивных тем для обсуждения, чем перемывать косточки?
Указание на неправильное решение - это промывание косточек? Для меня это желание помочь в поиске верного решения. Странно, что для тебя иначе...
[/off]
Аватара пользователя
Batya
Сообщения: 2236
Зарегистрирован: Ср дек 15, 2004 09:51
Откуда: Москва, Россия

Сообщение Batya »

Flasher
ОК. Теперь я понял, о чём ты. Так бы сразу и писал.
Да, моё решение, вероятнее всего, не соответствует поставленной задаче. Но менять скрипт, указанный в этой теме не вижу смысла, т.к. автор топика, видимо, удовлетворился решением по твоим ссылкам.
Пусть будет ещё одна "вариация на тему".
Нет, я не сплю. Я просто медленно моргаю.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

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