【发布时间】:2019-06-26 14:11:28
【问题描述】:
我正在使用 git diff 命令来获取在最后 2 次提交之间更改的文件,并且根据操作必须对文件执行不同的操作。所以我必须提取对文件和文件名的操作。
对于重命名的文件:
git diff 命令的结果如下,它是一个从swaggerA.json 重命名为swaggerB.json 的swagger 文件
R100 swaggerA.json swaggerB.json
这是我的代码:
$files=$(git diff HEAD~ HEAD --name-status)
$temp=$files -split ' '
echo $temp
echo $temp.Length
$name=$temp[1]
echo "this is $name file"
write-host $name
$output=$name.Split(' ')
$length=$output.Length
$output[0]
$output[1]
$output[$length-1]
上述脚本应该在理想情况下拆分并提供 3 个部分:
1) R100
2) swaggerAjson
3) swaggerB.json
但在 Azure 管道的 Powershell 任务中并没有这样做,并且每次都给出整个字符串。
【问题讨论】:
-
我不太明白您尝试将
$name变量(现在应该存储swaggerA.json)拆分为新变量$output的部分。这将产生一个单元素字符串数组swaggerA.json。这应该是函数的返回值吗?如果是这样,只需执行return ,$temp。 (注意一元逗号运算符)
标签: git powershell azure-devops azure-pipelines