Azure Devops Powershell 不显示 Get-ChildItem 的文件名
Azure Devops Powershell not showing file names for Get-ChildItem
我在 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 将允许您指定更大的 console-window 宽度(我不知道这是否是一个选项 - 如果您知道请告诉我们),[1] 但 解决方法 是通过管道传输到 Out-String
并使用其 -Width
参数;例如:
- pwsh: Get-ChildItem *.* -Recurse -Path $(Pipeline.Workspace) | Out-String -Width 160
displayName: 'Show folder contents for debugging'
注:
顾名思义,它将Get-ChildItem
的输出对象转换为字符串,因此这只适用于捕获for-display 表示.
正如您所注意到的,如果您不需要 all 列,一个更简单的解决方案——另外避免字符串化——是通过管道传输到 Select-Object
;例如:
- pwsh: Get-ChildItem *.* -Recurse -Path $(Pipeline.Workspace) | Select-Object UnixMode, Length, Name
displayName: 'Show folder contents for debugging'
[1] 不幸的是,设置 [Console]
class 的尺寸 - 例如[Console]::WindowWidth = 160
在 Unix-like 平台上 不受 支持。
我在 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 将允许您指定更大的 console-window 宽度(我不知道这是否是一个选项 - 如果您知道请告诉我们),[1] 但 解决方法 是通过管道传输到 Out-String
并使用其 -Width
参数;例如:
- pwsh: Get-ChildItem *.* -Recurse -Path $(Pipeline.Workspace) | Out-String -Width 160
displayName: 'Show folder contents for debugging'
注:
顾名思义,它将
Get-ChildItem
的输出对象转换为字符串,因此这只适用于捕获for-display 表示.正如您所注意到的,如果您不需要 all 列,一个更简单的解决方案——另外避免字符串化——是通过管道传输到
Select-Object
;例如:
- pwsh: Get-ChildItem *.* -Recurse -Path $(Pipeline.Workspace) | Select-Object UnixMode, Length, Name
displayName: 'Show folder contents for debugging'
[1] 不幸的是,设置 [Console]
class 的尺寸 - 例如[Console]::WindowWidth = 160
在 Unix-like 平台上 不受 支持。