【问题标题】:get-childitem truncates name, fullname prior to format [closed]get-childitem 在格式之前截断名称、全名 [关闭]
【发布时间】:2014-08-15 12:59:28
【问题描述】:

我一直在尝试使用 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 截断原因的提示或线索将不胜感激。

【问题讨论】:

    标签: powershell buffer get-childitem truncated


    【解决方案1】:

    你可以使用

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

    Select-Object

    -扩展属性

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

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

    编辑

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

    【讨论】:

    • 感谢 Lieven,但不幸的是我得到了相同的结果。显然,Get-ChildItem 的“名称”没有扩展...
    • @jjt - 奇怪,我已经编辑了我的答案以显示我在我的机器上得到了什么。您可以发布命令和输出的屏幕截图吗?你能在命令 shell 中发布一个简单的 dir 命令的结果吗?
    • 确实很奇怪!我正在拔头发。我运行了一个 DOS dir 命令和同样的东西 - 文件名/路径被截断:c:\Research & Development_Account Overview Data Project 0614\Accounts\myfilenametruncatesat30Charact.XLSX
    • 我真的很想在资源管理器和命令窗口中看到该文件夹​​的屏幕截图。
    • Lieven,我很抱歉 - 经过进一步研究,我发现实际的文件名是合法的。在文件创建期间名称被截断!啊!
    猜你喜欢
    • 2017-02-23
    • 2015-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多