gpt4 book ai didi

powershell - 获取文件夹中的所有文件,包括长路径(>256 个字符)+ 名称的文件

转载 作者:行者123 更新时间:2023-12-02 23:12:24 24 4
gpt4 key购买 nike

我正在尝试在特定文件夹中构建逗号分隔的文件名列表。这些文件的名称往往很长(它们是测试用例结果,名称非常具有描述性)。

我发现 Get-ChildItem 会忽略名称(包括路径)太长的文件。

# Folder contains the following file (240 chars, actual name is 'only' 210 chars):
# SomeServiceWithAnAlreadyLongNameUnderTest_NameOfTheParticularTestSuiteThatProducedThisResult-NameOfTheActualMethodUnderTest-Given_A_Certain_Precondition_Is_Met_WhenCalling_With_Someparameter_As_SomeValue_Then_Result_Is_Something-Failed.txt
Get-ChildItem *.txt -name
# I would have loved for this to work:
(Get-ChildItem *.txt -name) -join ','

结果不包含文件,因为路径+文件名太长。也没有错误或警告。

作为解决方法,我正在使用带有 for 的 cmd 脚本文件:

for %%a in (%XMLPath%\*.xml) do ( ... build comma separated list with %%a ... )

如何在 Powershell 中包含(也?)长名称的完整列表?

最佳答案

这似乎是一个非常受欢迎的问题,因为它已在此站点上多次被问到。无论如何,这里是您的备选方案:

使用 Pinvoke

Boe Prox - Technet

使用 Robocopy

Boe Prox - Technet

将 AlphaFS 与 Powershell V5 和 V4 结合使用

如果您能找到一台装有 PowerShell v5 的计算机(Windows 10 附带 PS v5),您可以安装一个名为 PSAlphaFS 的模块.

Install-Module PSAlphaFS

默认情况下,powershellgallery 中的模块安装到

C:\Program Files\WindowsPowerShell\Modules

注意:PSAlphaFS 模块也可以在具有 PowerShell V4 的目标系统上运行,但不能在 PowerShell V3 上运行。

这里是您可以找到当前运行的 Powershell 版本的方法。

$PSVersionTable.PSVersion

一旦模块就位,您就可以然后运行以下类似于 get-childitem 但没有 260 个字符限制的命令。

Get-LongChildItem  -Filter *.txt -Name

关于powershell - 获取文件夹中的所有文件,包括长路径(>256 个字符)+ 名称的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34459752/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com