Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - Структура папок

Ответить
Настройки темы
Любой язык - Структура папок

Аватара для JimmOnLine

Пользователь


Сообщения: 68
Благодарности: 0


Конфигурация

Профиль | Отправить PM | Цитировать


Добрый день!
Подскажите пожалуйста. Необходимо реализовать скрипт (не важно на чем), который бы записывал в Excel структуру каталогов. Пример:

Код: Выделить весь код
Folder1
     Folder2
     Folder3
     Folder4
          Folder4
          Folder5
               Folder6
Folder7
     Folder8
... ... ... ... ... ... ... ... ... ... ... ... ... ...
и т.д.

-------
ДМБ 2011 г.


Отправлено: 18:36, 15-07-2019

 

Ветеран


Сообщения: 3806
Благодарности: 822

Профиль | Отправить PM | Цитировать


Цитата JimmOnLine:
Excel - более удобный инструмент для дальнейшей обработки сформированных данных. »
это если уметь им пользоваться, а у вас какое-то рисование по клеточкам

по уму надо заполнять так:
Код: Выделить весь код
Folder1 | Folder2 |         |         |
Folder1 | Folder3 |         |         |
Folder1 | Folder4 | Folder4 |         |
Folder1 | Folder4 | Folder5 | Folder6 |
тогда и фильтры работают, и полный путь извлекается без танцев с бубном

Отправлено: 11:38, 16-07-2019 | #11



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

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для JimmOnLine

Пользователь


Сообщения: 68
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата Busla:
и полный путь извлекается без танцев с бубном
Хм. Наверное в этом есть смысл. Остаётся вопрос с реализацией.

Отправлено: 11:49, 16-07-2019 | #12


Ветеран


Contributor


Сообщения: 2545
Благодарности: 1591

Профиль | Отправить PM | Цитировать


JimmOnLine,
Цитата JimmOnLine:
Хм. Остаётся вопрос с реализацией. »
Хм. Не вопрос!
Код: Выделить весь код
AllDir = "Z:\Box_In"                     ' ---------  Полное имя рабочего каталога (без слэжа \ на конце)
Range1 = "C3"

Set XL = CreateObject("Excel.Application")
XL.Visible = True
XL.Workbooks.Add

Row1 = 0

XL.Range(Range1).FormulaR1C1 = "=""" + AllDir + """"

Set FSO = CreateObject("Scripting.FileSystemObject")
Call AllFolders(FSO, AllDir, AllDir, Range1, Row1, XL)
XL.Cells.EntireColumn.AutoFit

' ---------------------------------------------------------------------------
Sub AllFolders(FSO, AllDir, WDir, Range1, R1, XL)
    Set F = FSO.GetFolder(WDir)
    Set SubF = F.SubFolders
    For Each Folder In SubF
        R1 = R1 + 1
        MName = Split(Replace(WDir + "\" + Folder.Name, AllDir + "\", "", 1, 1), "\")
        C1 = 0
        XL.Range(Range1).Offset(R1, C1) = "=""" + AllDir + """"
        For Each jName In MName
            C1 = C1 + 1
            XL.Range(Range1).Offset(R1, C1) = "=""" + jName + """"
        Next
        Call AllFolders(FSO, AllDir, WDir + "\" + Folder.Name, Range1, R1, XL)
    Next
'    C1 = C1 + 1
End Sub

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 16-07-2019 в 13:08.

Это сообщение посчитали полезным следующие участники:

Отправлено: 13:02, 16-07-2019 | #13


Ветеран


Сообщения: 3806
Благодарности: 822

Профиль | Отправить PM | Цитировать


Цитата JimmOnLine:
Остаётся вопрос с реализацией. »
обход дерева делается встроенными средствами, а дальше просто разбить строку по слэшу:
Код: Выделить весь код
Get-ChildItem -Path c:\temp -Directory -Recurse `
| % { Write-Output ($_.FullName -split '\\') -NoEnumerate } `
| .{
    begin {
        $excel = New-Object -ComObject Excel.Application
        $excel.Visible = $true
        $workBook = $excel.Workbooks.Add()
        $folderList = $workBook.Worksheets.Item(1)
        $row=1
    }
    process {
        $_ | .{
            begin {
                $row++
                $column = 1
            }
            process {
                $FolderList.Cells.Item($row,$column++)="'$_"
            }
        }
    }
}

Отправлено: 17:12, 16-07-2019 | #14


Аватара для YuS_2

Crazy


Contributor


Сообщения: 897
Благодарности: 397

Профиль | Отправить PM | Цитировать


Цитата JimmOnLine:
который бы записывал в Excel структуру каталогов. Пример: »
powershell
Код: Выделить весь код
$root = 'd:\111'
$file = "$psscriptroot\out.xlsx"
$ids = ps excel -ea 0|%{$_.id}
$excel = new-object -com excel.application
$excelid = ps excel|%{$_.id}|?{$excelids -notcontains $_}
$excel.visible = $false
$workbook = $excel.workbooks.add()
$worksheet = $workbook.worksheets.item(1)
$row,$col=1,1
$worksheet.cells.item($row, $col) = $root
$content = dir -lit $root -dir -rec|sort fullname

foreach ($item in $content){
	$row++
	[array]$arr = $item.fullname -split "$([regex]::escape($root))|\\"|
	?{$_ -ne ''}
	$col = $arr.length + 1
	$worksheet.cells.item($row, $col) = $item.name
}
$usedrange = $worksheet.usedrange
$usedrange.entirecolumn.autofit()|out-null
$workbook.saveas($file)
$excel.quit()
kill -id $excelid -force -ea 0
Цитата JimmOnLine:
хочу сперва построить это схематично (путем Excel), далее "Транслитерировать" наименования каталогов в Excel, ну а затем CopyPast'ить из документа в наименование Групп безопасности. »
сомневаюсь, что это удобнее... скорее powershell-ом это проще сделать, в том числе и транслитерацию...

-------
scio me nihil scire. Ѫ


Отправлено: 18:07, 16-07-2019 | #15



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - Структура папок

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
7 / 2008 R2 - [решено] структура папок Windows7 ragga_31 Автоматическая установка Windows 11 / 10 / 8 / 7 / Vista 2 25-10-2015 15:41
C/C++ - Графовая структура Optimus Программирование и базы данных 3 22-03-2011 19:48
синтаксическая структура lcat Вебмастеру 9 18-12-2005 16:15
Структура трафика BanzayDima Хочу все знать 4 03-04-2005 20:54




 
Переход