gpt4 book ai didi

Azure Devops Powershell 不显示 Get-ChildItem 的文件名

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

我在 vmImage: ubuntu-latest 上的 Azure DevOps 管道中使用以下任务:

- pwsh: Get-ChildItem *.* -Recurse -Path $(Pipeline.Workspace)
displayName: 'Show folder contents for debugging'

我这样做是为了dir列出在之前的download管道工件步骤中下载的文件列表。我还尝试过常规的 powershell 而不是 Powershell Core。

文件夹名称正确显示,并且似乎显示了文件的条目,但根本不包含文件名 。这是我看到的部分输出:

/usr/bin/pwsh -NoLogo -NoProfile -NonInteractive -Command . '/home/vsts/work/_temp/1f22f03a-d1c6-4983-a08e-39ed349876be.ps1'

Directory: /home/vsts/work/1

UnixMode User Group LastWriteTime Size
-------- ---- ----- ------------- ----
drwxr-xr-x vsts docker 04/03/2022 16:22 4096
drwxr-xr-x vsts docker 04/03/2022 16:22 4096
drwxr-xr-x vsts docker 04/03/2022 16:22 4096
drwxr-xr-x vsts docker 04/03/2022 16:22 4096
drwxr-xr-x vsts docker 04/03/2022 16:22 4096

Directory: /home/vsts/work/1/s

UnixMode User Group LastWriteTime Size
-------- ---- ----- ------------- ----
drwxr-xr-x vsts docker 04/03/2022 16:22 4096
-rw-r--r-- vsts docker 04/03/2022 16:22 3507
-rw-r--r-- vsts docker 04/03/2022 16:22 2370
-rw-r--r-- vsts docker 04/03/2022 16:22 1636
-rw-r--r-- vsts docker 04/03/2022 16:22 1056
-rw-r--r-- vsts docker 04/03/2022 16:22 913980

et cetera

Directory: /home/vsts/work/1/s/src

UnixMode User Group LastWriteTime Size
-------- ---- ----- ------------- ----
drwxr-xr-x vsts docker 04/03/2022 16:22 4096
drwxr-xr-x vsts docker 04/03/2022 16:22 4096
drwxr-xr-x vsts docker 04/03/2022 16:22 4096

et cetera

为什么不显示文件名?我如何确保它确实如此?

最佳答案

看起来有效的控制台宽度是 80 个字符(如 [Console]::WindowWidth 所示,在这种情况下 Name列不适合并且被简单地删除。

理想情况下,Azure 允许您指定更大的控制台窗口宽度(我不知道这是否是一个选项 - 如果您知道,请告诉我们),[1] 但是 < em>解决方法是通过管道传输到 Out-String并使用其 -Width 参数;例如:

- pwsh: Get-ChildItem *.* -Recurse -Path $(Pipeline.Workspace) | Out-String -Width 160
displayName: 'Show folder contents for debugging'

注意:

  • 正如 cmdlet 的名称所示,它将 Get-ChildItem 的输出对象转换为字符串,因此这只适合捕获以下内容:显示表示。

  • 正如您所注意到的,如果您不需要所有列,一个更简单的解决方案 - 另外避免字符串化 - 是通过管道传输到 Select-Object ;例如:

- pwsh: Get-ChildItem *.* -Recurse -Path $(Pipeline.Workspace) | Select-Object UnixMode, Length, Name
displayName: 'Show folder contents for debugging'
<小时/>

[1] 不幸的是,设置 [Console] 类的尺寸 - 例如类 Unix 平台不支持[Console]::WindowWidth = 160

关于Azure Devops Powershell 不显示 Get-ChildItem 的文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71728509/

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