gpt4 book ai didi

git - -split ' ' 在 Powershell 中本地工作在 Azure 管道 Powershell 任务中不起作用

转载 作者:太空狗 更新时间:2023-10-29 14:27:42 25 4
gpt4 key购买 nike

我正在使用 git diff 命令来获取在最近 2 次提交之间更改的文件,并且根据操作必须对文件执行不同的操作。所以我必须提取对文件和文件名的操作。

对于重命名的文件:

git diff 命令的结果如下,这是一个重命名的 swagger 文件,从 swaggerA.jsonswaggerB.json

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 pipeline的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
}
}

关于git - -split ' ' 在 Powershell 中本地工作在 Azure 管道 Powershell 任务中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56774864/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com