Папка
Моя "c:\temp"
имеет две дочерние папки.Когда я запускаю Get-ChildItem "c:\temp" | Where-Object {$_.psiscontainer} | Select-Object -ExpandProperty FullName | ft -hidetableheaders
, Powershell выводит имена двух дочерних папок в c:\temp
на консоль:
C:\temp\child folder A
C:\temp\child folder B
Однако , если вы захватили выходные данные команды иИзучите тип данных каждого выходного пути, и вы увидите, что они не являются строками , и я думаю, что gsutil требует строку в качестве входных данных при использовании -I (я думаю, Ansgar Wiechers's
комментарий правильный)
Запустите это:
$x = Get-ChildItem "c:\temp"| Where-Object {$_.psiscontainer} | Select-Object -ExpandProperty FullName | ft -hidetableheaders
write-host $x.Count
$x[0] | get-member
В моем случае я вижу количество 2, как и ожидалось (две дочерние папки)
Однако , тип данныхпервый элемент не является строкой, это FormatEntryData:
$x[0] | get-member
показывает на консоли следующее:
TypeName: Microsoft.PowerShell.Commands.Internal.Format.FormatEntryData
Если вы удалите часть команды | ft -hidetableheaders
, тип данных каждого элемента - строка
Выполните это:
$x = Get-ChildItem "c:\temp"| Where-Object {$_.psiscontainer} | Select-Object -ExpandProperty FullName
write-host $x.Count
$x[0] | get-member
Вы увидите тип данных TypeName: System.String
для $x[0]
Работает ли это с gsutil
?