Forum
Bildirimler
Hepsini Temizle
Yazılım Genel
3
Yazılar
2
Üyeler
0
Reactions
670
Görüntüleme
Konu başlatıcı
Herkese Merhaba ,
Aşağıda belirtmiş olduğum betikte sadece c:\dizini altındaki klasörleri ve içindeki ıtemların isim ve oluşturma tarihi hakkında bilgi vermektedir . Benim istediğim örneğin C:\ dizini altında sadece klasör değil tüm dosya ve klasörleri sıralaması . O yüzden bir yere ufak dokunuş yapmam gerekiyor ama bulamadım . Yardımcı olursanız çok sevinirim dostlar .
Script :
function OnApplicationLoad { return $true } function OnApplicationExit { $script:ExitCode = 0 } function Call-Demo-TreeView_pff { [void][reflection.assembly]::Load("System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089") [void][reflection.assembly]::Load("System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089") [void][reflection.assembly]::Load("System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a") [void][reflection.assembly]::Load("mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089") [System.Windows.Forms.Application]::EnableVisualStyles() $form1 = New-Object 'System.Windows.Forms.Form' $splitcontainer1 = New-Object 'System.Windows.Forms.SplitContainer' $buttonExit = New-Object 'System.Windows.Forms.Button' $treeviewNav = New-Object 'System.Windows.Forms.TreeView' $imagelistLargeImages = New-Object 'System.Windows.Forms.ImageList' $imagelistSmallImages = New-Object 'System.Windows.Forms.ImageList' $listbox1 = New-Object 'System.Windows.Forms.ListBox' $InitialFormWindowState = New-Object 'System.Windows.Forms.FormWindowState' $FormEvent_Load={ } $treeviewNav_AfterSelect=[System.Windows.Forms.TreeViewEventHandler]{ Show-FolderDetails $treeviewNav.SelectedNode.Tag } $treeviewNav_DoubleClick={ $node=$treeviewNav.SelectedNode if($node.Nodes.Count -eq 0){ #[system.Windows.Forms.MessageBox]::Show($_.Node.Tag) $children=dir $($node.Tag) |?{$_.PsIsContainer} foreach($child in $children){ if($child){ $newnode=New-Object System.Windows.Forms.TreeNode $newnode.Name=$child.Name $newnode.Text=$child.Name $newnode.Tag=$child.FullName $node.Nodes.Add($newnode) } } $node.Expand() Show-FolderDetails $node.Tag } } function Show-FolderDetails($foldername){ $item=[System.IO.DirectoryInfo]$foldername $listbox1.Items.Clear() $listbox1.Items.Add("Name:$($item.Name)") $listbox1.Items.Add("CreationTIme:$($item.CreationTime)") $listbox1.Items.Add("LastWriteTime:$($item.LastWriteTime)") } $Form_StateCorrection_Load= { $form1.WindowState = $InitialFormWindowState } $Form_Cleanup_FormClosed= { try { $form1.remove_Load($FormEvent_Load) $treeviewNav.remove_AfterSelect($treeviewNav_AfterSelect) $treeviewNav.remove_DoubleClick($treeviewNav_DoubleClick) $form1.remove_Load($Form_StateCorrection_Load) $form1.remove_FormClosed($Form_Cleanup_FormClosed) } catch [Exception] { } } $form1.Controls.Add($splitcontainer1) $form1.Controls.Add($buttonExit) $form1.ClientSize = '640, 392' $form1.Name = "form1" $form1.StartPosition = 'CenterScreen' $form1.Text = "Form" $form1.add_Load($FormEvent_Load) $splitcontainer1.Anchor = 'Top, Bottom, Left, Right' $splitcontainer1.Location = '12, 12' $splitcontainer1.Name = "splitcontainer1" [void]$splitcontainer1.Panel1.Controls.Add($treeviewNav) [void]$splitcontainer1.Panel2.Controls.Add($listbox1) $splitcontainer1.Size = '616, 341' $splitcontainer1.SplitterDistance = 199 $splitcontainer1.TabIndex = 3 $buttonExit.DialogResult = 'Cancel' $buttonExit.Location = '553, 359' $buttonExit.Name = "buttonExit" $buttonExit.Size = '75, 23' $buttonExit.TabIndex = 2 $buttonExit.Text = "E&xit" $buttonExit.UseVisualStyleBackColor = $True $treeviewNav.Dock = 'Fill' $treeviewNav.Location = '0, 0' $treeviewNav.Name = "treeviewNav" $System_Windows_Forms_TreeNode_1 = New-Object 'System.Windows.Forms.TreeNode' ("C:\") $System_Windows_Forms_TreeNode_1.Name = "Node0" $System_Windows_Forms_TreeNode_1.Tag = "c:\" $System_Windows_Forms_TreeNode_1.Text = "C:\" [void]$treeviewNav.Nodes.Add($System_Windows_Forms_TreeNode_1) $treeviewNav.Size = '199, 341' $treeviewNav.TabIndex = 0 $treeviewNav.Tag = "" $treeviewNav.add_AfterSelect($treeviewNav_AfterSelect) $treeviewNav.add_DoubleClick($treeviewNav_DoubleClick) $imagelistLargeImages.ColorDepth = 'Depth32Bit' $imagelistLargeImages.ImageSize = '32, 32' $imagelistLargeImages.TransparentColor = 'Transparent' $imagelistSmallImages.ColorDepth = 'Depth32Bit' $imagelistSmallImages.ImageSize = '16, 16' $imagelistSmallImages.TransparentColor = 'Transparent' $listbox1.FormattingEnabled = $True $listbox1.Location = '3, 3' $listbox1.Name = "listbox1" $listbox1.Size = '407, 329' $listbox1.TabIndex = 0 $InitialFormWindowState = $form1.WindowState $form1.add_Load($Form_StateCorrection_Load) $form1.add_FormClosed($Form_Cleanup_FormClosed) return $form1.ShowDialog() } if((OnApplicationLoad) -eq $true) { Call-Demo-TreeView_pff | Out-Null OnApplicationExit }
Gönderildi : 27/10/2015 16:29
Sadece dosya ve alt dizinleri için biraz fazla detaylı bir fonksiyon kullanmışsınız. powershell childitemleri listelerken -Recurse parametresi ile alt dizinleride dahil edebiliyorsunuz
Gönderildi : 28/10/2015 14:30
Konu başlatıcı
Cevap için teşekkür ederim -recuse ile evet dosyaları ve klasörlerin sıralıyorum ancak daha sonra her bir dosya da klasör özelliği ile hareket ediyor .
Gönderildi : 29/10/2015 15:07