[英]Why does powershell env works locally but not with dockerfile?
[英]-split ' ' that works locally in Powershell does not work in a Azure pipeline Powershell task
我正在使用 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)招摇Ajson
3) swaggerB.json
但是它在 Azure 管道的 Powershell 任务中并没有这样做,并且每次都给出整个字符串。
git diff [cid]..[cid] --name-status
输出制表符分隔值的行,因此在正常空间上拆分对您没有帮助:
$changes = git diff HEAD~ HEAD --name-status |ForEach-Object {
# split on tab "`t"
$change,$orig,$new = $_ -split "`t"
[pscustomobject]@{
Change = $change
Original = $orig
Current = $new
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.