Git Foreach-将符号添加到Foreach循环中,是否需要嵌套的Foreach
我的剧本需要一些帮助;我已经完成了第一部分,但第二部分我不完全确定是否需要第二个foreach。 首先,脚本从分支输出文件和散列。在散列旁边,我已经设法添加了一个符号,我可以稍后更改为输出“散列”。我想在每个输出的文件旁边添加“文件”的第二部分,下面我已经包括了输出应该是怎样的,它是这样的;但我似乎无法在每个文件名旁边加上“文件”符号Git Foreach-将符号添加到Foreach循环中,是否需要嵌套的Foreach,git,powershell,foreach,Git,Powershell,Foreach,我的剧本需要一些帮助;我已经完成了第一部分,但第二部分我不完全确定是否需要第二个foreach。 首先,脚本从分支输出文件和散列。在散列旁边,我已经设法添加了一个符号,我可以稍后更改为输出“散列”。我想在每个输出的文件旁边添加“文件”的第二部分,下面我已经包括了输出应该是怎样的,它是这样的;但我似乎无法在每个文件名旁边加上“文件”符号 $GitList = git log master..branch2 --pretty=format:'%H' --reverse foreach ($has
$GitList = git log master..branch2 --pretty=format:'%H' --reverse
foreach ($hash in $GitList) {
"$hash hash"
$files = git show $hash --pretty="format:" --name-only
$files
}
#-------------------------------output should be like below
37b970b35681728db2faa4135681728d hash
branch2/ScriptPart1.ps1 file
37b970b371a7805a657030f687135681728d hash
branch2/ScriptPart2.ps1 file
branch2/ScriptPart3.ps1 file
37b970b30a137b970b381e5d5135681728d hash
branch2/ScriptPart2.ps1 file
321b2feb5d37b970b32d47f4135681728d hash
提前谢谢我只想对每个物体做一个快速而肮脏的处理,然后就可以了。。。大致如下:
$files | Foreach-Object { "{0} file" -f $_ }
您的主要问题可能是,行的返回值:
git show $hash --pretty="format:" --name-only
由PowerShell作为字符串数组处理,其中包含两项,第一项包含空字符串
直接解决第二个问题将是实现您在这里想要做的事情的一种方式:
$GitList = git log master --pretty=format:'%H' --reverse
foreach ($hash in $GitList) {
"$hash hash"
(git show $hash --pretty="format:" --name-only)[1] + ' file'
}
顺便说一下:根据您的场景,您可以考虑使用PSObjts作为输出。特别是如果您计划通过PowerShell进一步处理脚本的输出:
foreach ($hash in $GitList) {
$file = (git show $hash --pretty="format:" --name-only)[1]
New-Object -Type psobject -Property @{'Hash'= $hash; 'File' = $file}
}
我不知道Powershell,但是是的,您必须循环查看
$文件的列表。