Jer*_*oen 11 powershell azure azure-devops powershell-core
我在 Azure DevOps 管道中使用以下任务vmImage: ubuntu-latest:
- pwsh: Get-ChildItem *.* -Recurse -Path $(Pipeline.Workspace)
displayName: 'Show folder contents for debugging'
Run Code Online (Sandbox Code Playgroud)
我这样做是为了列出在先前的管道工件步骤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
Run Code Online (Sandbox Code Playgroud)
为什么不显示文件名?我怎样才能确保它确实如此?
mkl*_*nt0 10
看起来有效的控制台宽度是80字符(如 中所反映的[Console]::WindowWidth,在这种情况下,该Name列不适合并且被简单地删除。
理想情况下,Azure 将允许您指定更大的控制台窗口宽度(我不知道这是否是一个选项 - 如果您知道请告诉我们),[1]但解决方法是通过管道传输Out-String并使用其-Width参数;例如:
- pwsh: Get-ChildItem *.* -Recurse -Path $(Pipeline.Workspace) | Out-String -Width 160
displayName: 'Show folder contents for debugging'
Run Code Online (Sandbox Code Playgroud)
笔记:
正如 cmdlet 的名称所暗示的,它将Get-ChildItem的输出对象转换为strings,因此这仅适合捕获用于显示的表示形式。
正如您所注意到的,如果您不需要所有列,一个更简单的解决方案(另外避免字符串化)是将管道传输到Select-Object; 例如:
- pwsh: Get-ChildItem *.* -Recurse -Path $(Pipeline.Workspace) | Select-Object UnixMode, Length, Name
displayName: 'Show folder contents for debugging'
Run Code Online (Sandbox Code Playgroud)
[1] 不幸的是,类 Unix 平台不支持设置类的维度[Console]- 例如。[Console]::WindowWidth = 160
| 归档时间: |
|
| 查看次数: |
1814 次 |
| 最近记录: |