我在 Azure DevOps 管道中使用以下任务vmImage: ubuntu-latest
:
- pwsh: Get-ChildItem *.* -Recurse -Path $(Pipeline.Workspace)
displayName: 'Show folder contents for debugging'
我这样做是为了dir
列出之前下载的文件列表download
管道工件步骤。我也尝试过常规powershell
而不是 Powershell Core。
The 文件夹名称正确显示,并且entries文件似乎正在显示,但没有文件名完全包括在内。这是我看到的输出的一部分:
/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
列不适合并且被简单地丢弃。
Ideally, Azure would allow you to specify a larger console-window width (I don't know if that is an option - do tell us if you know),[1] but a workaround is to pipe to Out-String https://learn.microsoft.com/powershell/module/microsoft.powershell.utility/out-string and use its -Width
parameter; e.g.:
- pwsh: Get-ChildItem *.* -Recurse -Path $(Pipeline.Workspace) | Out-String -Width 160
displayName: 'Show folder contents for debugging'
Note:
-
正如 cmdlet 的名称所示,它将转换Get-ChildItem
的输出对象为strings,所以这只适合捕获用于显示交涉。
-
正如您所注意到的,如果您不需要all列,一个更简单的解决方案 - 它还避免了字符串化 - 是通过管道传输到Select-Object https://learn.microsoft.com/powershell/module/microsoft.powershell.utility/select-object; e.g.:
- pwsh: Get-ChildItem *.* -Recurse -Path $(Pipeline.Workspace) | Select-Object UnixMode, Length, Name
displayName: 'Show folder contents for debugging'
[1] Unfortunately, setting the dimensions of the [Console]
class - e.g. [Console]::WindowWidth = 160
is not supported on Unix-like platforms.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)