【问题标题】:How to tar folder on windows server 2019如何在 Windows Server 2019 上 tar 文件夹
【发布时间】:2021-08-29 15:41:22
【问题描述】:

我的jenkins 工作空间中有以下路径:

Report Services\bin\Release\

我如何从Jenkinsfiletar 这个文件夹(该命令针对windows server 2019 服务器运行)? 据我所知,tar.execurl.exe 首先包含在 Windows Server 2019 中。

我在Jenkinsfile 中尝试了以下内容:

bat "tar -cvzf output.tar.gz Report Services\\bin\\Release"

但我不断收到以下错误:

tar: Report: Couldn't find file: No such file or directory
tar: Services/bin/Release: Couldn't find file: No such file or directory

另外,为了改进它,我怎样才能只 tar 来自这个目录的 *.rdl 文件?

【问题讨论】:

  • 您是否尝试过引用包含空格的路径?也许双引号可以做到这一点,但是您需要像使用反斜杠一样转义那些,例如bat "tar -cvzf output.tar.gz \"Report Services\\bin\\Release\""
  • @Compo 你是对的,你可以把它作为答案发布:)
  • 另外,如何将其修改为仅 tar 路径中的特定扩展名?
  • 您是否厌倦了使用通配符/glob *.rdl?您可能会发现先将当前工作目录更改为".\Report Services\bin\Release" 很有用。

标签: batch-file cmd jenkins-pipeline tar windows-server-2019


【解决方案1】:

您需要转义 "\ 替换为 \\ : 请看下面的例子:

bat "tar -cvzf output.tar.gz \"Report Services\\bin\\Release\""

如果你想 tar 某些文件:

bat "tar -cvzf output.tar.gz \"Report Services\\bin\\Release\\*.rdl\""

【讨论】:

  • Tnx,我接受了,但请注意第二个命令不起作用:WorkflowScript: 18: unexpected char: '\' @ line 18, column 69. "Report Services\\bin\\Release\*.rdl""
  • @arielma : 对不起,你能添加反弹Release\\*.rdl""
  • 我试过了,还是报错:WorkflowScript: 17: expecting anything but ''\n''; got it anyway @ line 17, column 78. ervices\\bin\\Release\\*.rdl""
  • @arielma :似乎\" 之前丢失了,因为它需要被转义。命令是:bat "tar -cvzf output3.tar.gz \"C:\\Documents\\Report Services\\bin\\Release\\*.rdl\""。这给了我结果
  • 让我们忽略C:\\Documents,命令现在应该是什么样子?根据我的理解,与您在答案中写的完全相同(我得到了例外):bat "tar -cvzf output.tar.gz \"Report Services\\bin\\Release\\*.rdl\""
猜你喜欢
  • 2018-09-18
  • 2021-09-07
  • 2021-10-31
  • 2012-12-01
  • 2020-06-25
  • 2019-11-01
  • 2021-11-29
  • 2021-04-15
  • 2019-04-22
相关资源
最近更新 更多