Как отобразить имена заголовков в приведенном ниже powersellscript
Попытка получить результаты этого скрипта powershell для возврата объекта таблицы, чтобы я мог прочитать этот объект в C#
Сценарий powershell рекурсивно подсчитывает количество файлов в каталоге
Что я уже пробовал:
Я уже пробовал это сделать:
cd D:\VMs dir -recurse | ?{ $_.PSIsContainer } | %{ Write-Host $_.FullName $_.DirectoryName (dir $_.FullName | Measure-Object).Count}
Который возвращает правильные результаты, но без заголовка, как я ожидаю.
Результаты работы скрипта
PS D:\VMs> C:\test\test.ps1 D:\VMs\Windows 10 Pro 52 D:\VMs\WindowsXP 29 D:\VMs\Windows 10 Pro\564d6a23-4315-5965-49a6-cef8c565a3ca.vmem.lck 1 D:\VMs\Windows 10 Pro\caches 1 D:\VMs\Windows 10 Pro\Personal Windows 10 Pro.vmdk.lck 1 D:\VMs\Windows 10 Pro\Personal Windows 10 Pro.vmx.lck 1 D:\VMs\Windows 10 Pro\caches\GuestAppsCache 2 D:\VMs\Windows 10 Pro\caches\GuestAppsCache\appData 442 D:\VMs\Windows 10 Pro\caches\GuestAppsCache\launchMenu 2 D:\VMs\WindowsXP\caches 1 D:\VMs\WindowsXP\caches\GuestAppsCache 2 D:\VMs\WindowsXP\caches\GuestAppsCache\appData 161 D:\VMs\WindowsXP\caches\GuestAppsCache\launchMenu 2
Хотелось бы, чтобы заголовки были каталогом и CountOfFilesInDirectory
Directory: D:\vms Mode LastWriteTime Length Name ---- ------------- ------ ---- d----- 2019-08-06 12:12 PM Windows 10 Pro d----- 2019-08-02 4:09 PM WindowsXP
Как и заголовки, показанные выше
Код C#
string script = File.ReadAllText(@"c:\test\test.ps1"); using (PowerShell PowerShellInst = PowerShell.Create()) { //string criteria = "system*"; //PowerShellInst.AddScript("Get-Service -DisplayName " + criteria); PowerShellInst.AddScript(script); Collection<PSObject> PSOutput = PowerShellInst.Invoke(); foreach (PSObject obj in PSOutput) { if (obj != null) { obj.ToString(); Console.Write(obj.Properties["Directory"].Value.ToString() + " - "); Console.WriteLine(obj.Properties["CountOfFilesInDirectory"].Value.ToString()); } } Console.WriteLine("Done"); Console.Read(); }