2

我一直在试验 get-childitem、format-table、format-string 和 out-file 的 PowerShell 组合。

无论我使用 ft -wrap -autoformat 和各种其他选项尝试什么,get-childitem 的调用都会将 name 属性截断为总共 35 个字符(30 个,不包括扩展名),例如:

$dir = Get-ChildItem 'c:\mypath\*' | ft -Wrap -AutoSize -Property name

示例结果(注意:没有省略号,但完整的扩展名):

myfilenametruncatesat30Charact.xlsx

全名的行为相同,截断为 106 个字符。

因此,似乎 get-childitem 在将其输出到格式 cmdlet 之前受到某种类型的缓冲区的约束......

我看过一些参考资料,其中提到了 Windows 路径的 260 个字符限制,但这些路径的长度范围在 100 - 120 之间。

任何有关 Powershell 截断原因的提示或线索将不胜感激。

4

1 回答 1

6

您可以使用

Get-ChildItem 'c:\mypath\*' | Select -ExpandProperty Name

选择对象

-扩展属性

指定要选择的属性,并指示应尝试扩展该属性。属性名称中允许使用通配符。

例如,如果指定的属性是一个数组,则该数组的每个值都包含在输出中。如果属性包含对象,则该对象的属性将显示在输出中。

编辑

PS C:\Users\Lieven\AppData\Local\Temp> gci myfilenametruncatesat30CharactAndThenSome.xlsx | ft -Wrap -AutoSize -Property
 name

Name
----
myfilenametruncatesat30CharactAndThenSome.xlsx
于 2014-08-15T13:10:03.527 回答