Автор Тема: Содержание папки - в текстовый файл. Какая программа?  (Прочитано 4663 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Gepard

  • Ветеран
  • *****
  • Сообщений: 8159
  • Карма: 668
  • Пол: Мужской
  • у меня тоже есть текст под аватаром ))
    • Просмотр профиля
Ну, вопрос уместился в заголовок. По Яндексу толком ничего не смог найти. Подскажите, пожалуйста, название.
 [[kiss2]]
Живём дальше... ;)


Оффлайн Crypt

  • Ветеран
  • *****
  • Сообщений: 1725
  • Карма: 137
  • Пол: Мужской
    • Просмотр профиля
Пьяный проспиться, дурак - никогда.

Оффлайн Gepard

  • Ветеран
  • *****
  • Сообщений: 8159
  • Карма: 668
  • Пол: Мужской
  • у меня тоже есть текст под аватаром ))
    • Просмотр профиля
Спасибо ))

получилось.

А на будущее - есть что-нибудь с более гламурным интерфейсом? Хотя бы чтоб помимо названий папок можно было закинуть и названия файлов в этих папках, которые лежат в нужной мне папке. Или есть команда и для этого? То есть чтоб список был папок и подпапок.


Аааа, в этом способе обнаружился косяк. Русскоязычные папки оказались иероглифами в текстовом. Как лечить?
Живём дальше... ;)

Оффлайн LEO

  • Ветеран
  • *****
  • Сообщений: 4417
  • Карма: 310
  • Пол: Мужской
    • Просмотр профиля
dir > filename.txt

совершенно точно.

если нужны только имена файлов без подробностей - dir /b

у dir еще много ключей есть - dir /? для справки.

dir > filename.txt - каждый раз перезаписыват filename.txt
если вдруг понадобится вместо этого дописать в конец файла, место перезаписи, то
dir >> filename.txt
http://is.gd/fpTeSMПродам книжки про Ajax и ASP.NET, http://is.gd/lDL64HПриглашаю в Dropbox

Оффлайн LEO

  • Ветеран
  • *****
  • Сообщений: 4417
  • Карма: 310
  • Пол: Мужской
    • Просмотр профиля
> Как лечить?

все там нормально. кодировка досовская. штирлицем открой, или любой прогой по-умнее блокнота. хоть вордом.

можно было и догадаться =)


если файлов не очень много, я обычно копирую текст прямо из окна cmd
http://is.gd/fpTeSMПродам книжки про Ajax и ASP.NET, http://is.gd/lDL64HПриглашаю в Dropbox

Оффлайн mga

  • Ветеран
  • *****
  • Сообщений: 7682
  • Карма: -477
  • Пол: Мужской
    • Просмотр профиля
Тотал, плагины, Directory Lister. <-Есть у меня.
A patriot must always be ready to defend his country against his government. Edward Abbey.

Never sacrifice freedom for security, because without freedom whatever security you have is hollow.

Оффлайн Gepard

  • Ветеран
  • *****
  • Сообщений: 8159
  • Карма: 668
  • Пол: Мужской
  • у меня тоже есть текст под аватаром ))
    • Просмотр профиля
ЛЕО, огромное спасибо!!!!!

не догадался ))

mga, спасибо )
Живём дальше... ;)

Оффлайн Нервный

  • Ветеран
  • *****
  • Сообщений: 7292
  • Карма: 285
  • Пол: Мужской
    • Просмотр профиля
> Аааа, в этом способе обнаружился косяк. Русскоязычные папки оказались иероглифами в текстовом. Как лечить?

сhcp 1251

Оффлайн LEO

  • Ветеран
  • *****
  • Сообщений: 4417
  • Карма: 310
  • Пол: Мужской
    • Просмотр профиля
> Аааа, в этом способе обнаружился косяк. Русскоязычные папки оказались иероглифами в текстовом. Как лечить?

сhcp 1251
нда, только в cmd теперь русский текст нечитаем =)

а чтоб обратно какой код?
http://is.gd/fpTeSMПродам книжки про Ajax и ASP.NET, http://is.gd/lDL64HПриглашаю в Dropbox

Оффлайн Нервный

  • Ветеран
  • *****
  • Сообщений: 7292
  • Карма: 285
  • Пол: Мужской
    • Просмотр профиля
> Аааа, в этом способе обнаружился косяк. Русскоязычные папки оказались иероглифами в текстовом. Как лечить?

сhcp 1251
нда, только в cmd теперь русский текст нечитаем =)

а чтоб обратно какой код?

chcp 866

Оффлайн Alt

  • Ветеран
  • *****
  • Сообщений: 2840
  • Карма: 54
  • Пол: Мужской
  • альтруист-мизантроп
    • Просмотр профиля
нда, только в cmd теперь русский текст нечитаем =)
смени точечные шрифты на люцида консоле =) и будед щастие

Оффлайн LEO

  • Ветеран
  • *****
  • Сообщений: 4417
  • Карма: 310
  • Пол: Мужской
    • Просмотр профиля
нда, только в cmd теперь русский текст нечитаем =)
смени точечные шрифты на люцида консоле =) и будед щастие
гы)))

аш глаза с непривычки режет ))

таким макаром можно было посоветовать автору в блокноте шрифт Terminal поставить =)
правда тогда только в блокноте и можно будет читать ))
http://is.gd/fpTeSMПродам книжки про Ajax и ASP.NET, http://is.gd/lDL64HПриглашаю в Dropbox

Оффлайн Gepard

  • Ветеран
  • *****
  • Сообщений: 8159
  • Карма: 668
  • Пол: Мужской
  • у меня тоже есть текст под аватаром ))
    • Просмотр профиля
Огромное спасибо!!!!

p.s.: а чтоб не выводились размеры файлов, нужно убрать следующие буквы: & "Size"?
Живём дальше... ;)

Оффлайн LEND

  • Пользователь
  • **
  • Сообщений: 95
  • Карма: 155
  • Истина как всегда где-то рядом
    • Просмотр профиля
Привожу листинг файла ListFoldFiles.vbs
Он очень большой, но думаю должен поместиться в сообщении
'*******************************************************************
' File:    ListSubFolder.vbs (VBScript)
' Author:  LEND
' Листинг всех вложенных директорий(подкатлогов) указанной
' директории(каталога), их файлов и вывод в NOTEPAD
'*******************************************************************
Option Explicit
'Объявляем переменные
'Const Title = "Lend"
Dim oIE     
Dim path     
Dim ready   
Dim WshShell
Dim strPathHtml
Dim objDocument
Dim BisQuit
Dim flag1,flag2,flag3
Dim FSO
Dim F
Dim SFold
Dim SubFolders
Dim Folder
Dim s
Dim K
Dim t
Dim m
Dim wsh
Dim KolFiles
Dim VsegoKatalogov
Dim VsegoFiles
Dim VsegoSize
Dim VsegoFilesKat
Dim oFolder
Dim oFile
Dim oFiles
Dim VsegoSizeMb
Dim VsegoFilesSize
Dim fOut
Dim theNotepad
Const ForWriting = 2

'++++++++++++++++++++++++ Процедуры ++++++++++++++++++++++
'================== Процедура Показа Explorer формы =========
Sub PokazForm
Set objDocument=oIE.Document
objDocument.all.KnopOk.Disabled=False
objDocument.all.KnopVix.Disabled=False
Set objDocument.all.KnopOk.onClick=GetRef("Okda")
Set objDocument.all.KnopVix.onClick=GetRef("Vixda")
End Sub
'================== Процедура вывода данных формы =================
Sub Okda
Sfold=oIE.Document.ValidForm.fDirKat.Value
flag1=oIE.Document.ValidForm.fcheck1.Checked
flag2=oIE.Document.ValidForm.fcheck2.Checked
flag3=oIE.Document.ValidForm.fcheck3.Checked

'Проверка каталога

if FSO.FolderExists(Sfold)=False then
  if Sfold="" then
    msgBox "Вы ничего не ввели"
  else
    msgBox "Директория(каталог)" & VbCrLf &_
    Sfold & chr(13) & "Не существует"
  end if
else
  Raschet  'Процедура расчета
end if   
End Sub
'===================== Расчет ========================================
Sub Raschet
'Создаем объект FileSystemObject
s = "Каталог " & SFold & VbCrLf
s = s & "Подкаталоги:" & VbCrLf
'Создаем объект Folder для любого каталога
Set F=FSO.GetFolder(SFold)

'Создаем коллекцию подкаталогов любого каталога
Set SubFolders = F.SubFolders
   m="Просмотр каталога " & SFold & " и его подкаталогов и файлов" & VbCrLf
VsegoFiles=0
VsegoFilesKat=0
VsegoSize=0
   ShowFil (SFold)
   m=m & vbCrLf
   m=m & "========= Подкаталоги и файлы =========" & vbCrLf
'Цикл по всем каталогам и подкаталогам
VsegoKatalogov=0
VsegoKatalogov=VsegoKatalogov+SubFolders.Count
For Each Folder In SubFolders
  'Добавляем строку с именем подкаталога
   m = m & Folder & VbCrLf
   s = Folder
   ShowFil (s)  'Процедура показа файлов
   m=m & vbCrLf
   Kat (s)   'Процедура показа каталогов
Next
  m=m & VbCrLf
  m=m & "Всего вложенных каталогов в каталоге " & SFold & VbCrLf
  m=m & VsegoKatalogov & VbCrLf
  m=m & "Всего вложенных файлов в каталоге " & SFold & VbCrLf
  m=m & VsegoFiles & VbCrLf

 if flag3=true then 'Всего размер указанного каталога
  m=m & "Общий размер вложенных файлов в БАЙТАХ в каталоге " & SFold & VbCrLf
  m=m & VsegoSize & VbCrLf
  m=m & "Общий размер вложенных файлов в Mb в каталоге " & SFold & VbCrLf
  VsegoSizeMb = VsegoSize/1048576
  m=m & VsegoSizeMb & VbCrLf
 end if

' Выводим файлы директории с помощью TextOut
' Файл запишется в корневую директорию C:\Temp\ListKatFiles.txt - Выбери сам куда
TextOut m,"C:\Temp\ListKatFiles.txt"
'Создаем объект WshShell
Set WshShell = WScript.CreateObject("WScript.Shell")
'Открываем созданный файл в Блокноте и выводим полученные данные на экран
Set theNotepad = WshShell.Exec("notepad " & "C:\Temp\ListKatFiles.txt" )
End Sub
'================== Выход из формы  ===================================
Sub Vixda
 oIE.Quit
End Sub
'============ Функция просмотра всех подкаталогов ============
Sub Kat (s)
Set K=FSO.GetFolder(s)
'Создаем коллекцию подкаталогов
Set SubFolders = K.SubFolders
'Цикл по всем подкаталогам
VsegoKatalogov=VsegoKatalogov+SubFolders.Count
For Each Folder In SubFolders
  'Добавляем строку с именем подкаталога
   m = m & Folder & VbCrLf
   t=Folder
   ShowFil (t)
   m=m & vbCrLf
   Kat(t)
Next
End Sub
'=============== Функция для записи информации в файл ==========
Sub TextOut (m, File)
  ' Открываем выходной файл для записи
  Set  FOut = FSO.OpenTextFile(File,ForWriting,true)
  ' Записываем текстовую строку в файл
  FOut.WriteLine m
  ' Закрываем выходной файл
  FOut.Close
End Sub
'================ Функция показа файлов =======================
Sub ShowFil (t)
Set wsh = WScript.CreateObject("WScript.Shell")
Set oFolder = fso.GetFolder(wsh.ExpandEnvironmentStrings(t)) 
'm=m & vbCrLf
'm=m & "Файлы каталога" & vbCrLf
'm = m & "Name" & vbTab & vbTab & "Size" & vbCrLf

Set oFiles = oFolder.Files         ' Вывод файлов.
kolFiles=oFiles.count 'Кол. файлов в директории
VsegoFiles=VsegoFiles+KolFiles
m=m & "Всего файлов: " & kolFiles & vbCrLf
VsegoFilesSize=0
For Each oFile In oFiles           ' Все файлы
    m = m & oFile.Name & vbTab

 if flag1=true then
    m = m & FormatNumber(oFile.Size, 0) & vbTab
 end if
    m = m & vbCrLf
    VsegoSize=VsegoSize+FormatNumber(oFile.Size, 0)
    VsegoFilesSize=VsegoFilesSize+FormatNumber(oFile.Size, 0)
Next
if flag2=true then ' Показ размера каталога
   m=m & "Всего в этом каталоге " & VsegoFilesSize & " Bt. или " &_
               FormatNumber((VsegoFilesSize/1048576),6) & " Mb." & vbCrLf
end if

'm=m & "Всего файлов: " & kolFiles & vbCrLf

End Sub
'==============================================================
'+++++++++++++++++++++ Конец процедур +++++++++++++++++++++++++

'***************** Основное тело программы ************
Set WshShell=WScript.CreateObject("WScript.Shell")
Set oIE = WScript.CreateObject("InternetExplorer.Application", "IE_")
Set FSO = WScript.CreateObject("Scripting.FileSystemObject")


oIE.Left = 10           
oIE.Top = 10
oIE.Height = 320
oIE.Width = 530
oIE.MenuBar = 0         
oIE.ToolBar = 0
oIE.StatusBar = 0
oIE.Resizable = 0
strPathHtml=WshShell.CurrentDirectory & "\" & "Forma.htm"
oIE.navigate strPathHtml 'Вызов формы
oIE.Visible = 1         ' Показать Form'у
Do While (oIE.Busy)   
    WScript.Sleep 200   ' Задерка 200 milliseconds - вывода Form'ы 
Loop

PokazForm ' Основная Процедура
BisQuit=false

While not BisQuit
  WScript.Sleep 200   ' Задержка 200 milliseconds.
Wend

'WScript.Quit
'******************* Конец программы *****************


Эти два файла ВЫ можете перенести в любую директорию(каталог). Они должны быть вместе.
И тогда Вы можете поэксперементировать. Вы также можете их запускать в большом количество экземпляров, но только непереполните память.
Вообщем Я их выложил в 1-ом сообщении. Они оба будут с расширением txt
 
Потом замените:
   Forma.txt на Forma.htm
   ListSubFolder.txt на ListSubFolder.vbs

И еще можно модернизировать программу.
Если ВЫ разбираетесь - пробуйте.

Можно также эти 2 файла записать в 1 файл с расширением XML , но это надо пробовать.

Успеха
LEND
« Последнее редактирование: 24.11.07, 20:53:34 от LEND »
В мире временном, сущность которого - тлен,
Не сдавайся вещам несущественным в плен. © О.Х.

Оффлайн LEND

  • Пользователь
  • **
  • Сообщений: 95
  • Карма: 155
  • Истина как всегда где-то рядом
    • Просмотр профиля
Наконец то починили "СЕТЬ".

Окончательное завершение программ.
Все, упрятал форму в VBS и написал еще 1 программу под HTA.Теперь программа ShowFoldFiles.vbs сама создает форму Forma.htm и из нее можно работать. Программа удаляет эту форму после своего завершения и не оставляет WScript.exe в процессах. Так же закодировал ShowFoldFiles.vbs в ShowFoldFiles.vbe, чтобы ее не правили.

Вообщем в кратце.
Выкладываю 3 программы
1 ListFoldFiles1.txt  - это ListFoldFiles1.vbs
2 ListFoldFiles2.txt  - это ListFoldFiles2.vbe
3 ShowFoldFiles3.txt  - это ShowFoldFiles3.hta
Переправьте только расширения и все. Все запускаются автономно и прямо из системы.

Такого показателя оператора GetFolder (GetDir и похожие) как "ДИАЛОГ-объекта" в VBS и JS (какие есть в других языках программирования) не нашел и потому в указанных программах исследуюмую директорию (каталог,папка) надо набирать вручную.
Под hta и htm тоже не нашел ДИАЛОГА под директории (каталог,папка). В конструкция <input name="" type="" size=""> можно только указать type="file" которая может показать ДИАЛОГ ВЫБОРА файлов.
Опять же может плохо искал - но не нашел. Выйти из положения можно - скопируйте нужную ВАМ директорию (каталог, папку) из свойств самой директории (каталога,папки). В большинстве случаев это возможно. Затем примените "вставку" где надо набирать директорию (каталог,папку) уже в запущенной программе ну например в ShowFoldFiles3.hta

И еще:
- При запуске  ListFoldFiles1.vbs и ListFoldFiles2.vbe в список процессов добавляются еще 3 процесса.
  Это IEXPLORER.EXE, WScript.exe и NOTEPAD.EXE

- При запуске  ShowFoldFiles3.hta в список процессов добавляются только 2 процесса.
  Это msta.exe и NOTEPAD.EXE
  ВЫбирайте что ВАМ удобно, но мне думается что скрипты VBS И JS работают быстрее.

Gepard
Ну вот ВАМ и программа с почти гламмурным интерфейсом.
Ну наверно на этом все.
Программу можно улучшать - пробуйте.
« Последнее редактирование: 27.11.07, 22:20:21 от LEND »
В мире временном, сущность которого - тлен,
Не сдавайся вещам несущественным в плен. © О.Х.

Оффлайн LEND

  • Пользователь
  • **
  • Сообщений: 95
  • Карма: 155
  • Истина как всегда где-то рядом
    • Просмотр профиля
Нашел все таки функцию ПОКАЗА ДИРЕКТОРИЙ (КАТАЛОГОВ и ПАПОК)
Файлы упрятал в архив List.rar
Получилась программа с наглядным интерфейсом.
Рисунок ris.jpg
В мире временном, сущность которого - тлен,
Не сдавайся вещам несущественным в плен. © О.Х.

Оффлайн Gepard

  • Ветеран
  • *****
  • Сообщений: 8159
  • Карма: 668
  • Пол: Мужской
  • у меня тоже есть текст под аватаром ))
    • Просмотр профиля
Офигенно!!!!!
Огромнейшее спасибо! Буду пользоваться!!!!!! Думаю, и другим тоже будет полезно!
Живём дальше... ;)

Оффлайн alx_su

  • Новичок
  • *
  • Сообщений: 3
  • Карма: 0
    • Просмотр профиля
Ребята, подскажите, где можно скачать такую программу? Очень надо!!!

Оффлайн Perf

  • Ветеран
  • *****
  • Сообщений: 10681
  • Карма: 991
  • Dr. Dick - старик Похабыч
    • Просмотр профиля
Ребята, подскажите, где можно скачать такую программу? Очень надо!!!
:bj:

а темку с начала прочитать религия не позволяет?
Мы дружим со слюнявым Адмиралом -
Он был и остаётся добрым малым.
А пинчера гоняли и гоняем
За то, что он, каналья, невменяем!

Оффлайн alx_su

  • Новичок
  • *
  • Сообщений: 3
  • Карма: 0
    • Просмотр профиля
Позволяет, только че-то я не могу скачать. М.б. я совсем тупой...