为多个文件设置svn propset关键字

为多个文件设置svn propset关键字,svn,powershell,batch-file,Svn,Powershell,Batch File,我必须通过svn propset在9000多个文件上设置svn:关键字。我的第一个想法是每次使用for循环调用svn propset。问题是:这真的很慢。操作系统必须为每个文件创建一个进程。我想阻止这一切 所以,我的第二个想法是给svn命令一个包含文件名的文件。但是SVN不接受这个 我正在使用powershell脚本获取所有文件。我的第三个想法是使用管道或重定向一个文件/命令的输出作为另一个文件/命令的输入。但这也不行 $fileList = "fileList.txt" Out-File -f

我必须通过svn propset在9000多个文件上设置svn:关键字。我的第一个想法是每次使用for循环调用svn propset。问题是:这真的很慢。操作系统必须为每个文件创建一个进程。我想阻止这一切

所以,我的第二个想法是给svn命令一个包含文件名的文件。但是SVN不接受这个

我正在使用powershell脚本获取所有文件。我的第三个想法是使用管道或重定向一个文件/命令的输出作为另一个文件/命令的输入。但这也不行

$fileList = "fileList.txt"
Out-File -filePath $fileList -inputObject ""
$files = Get-ChildItem . -recurse -include *.java,*.xml,*.properties,*.sql,*.ps1,*.bat | Where-Object {!($_.psIsContainer)}
foreach($file in $files) {
    Out-File -filePath $fileList -inputObject $file.fullname -append
}
Write-Host "Alle Dateien gefunden. Setze jetzt die SVN Property."
svn propset svn:keywords "LastChangedDate LastChangedRevision LastChangedBy Id HeadURL Revision Author Date"<$fileList
$fileList=“fileList.txt”
输出文件-文件路径$fileList-输入对象“”
$files=获取子项-recurse-包括*.java、*.xml、*.properties、*.sql、*.ps1、*.bat | Where对象{!($\ psicontainer)}
foreach($files中的文件){
输出文件-文件路径$fileList-输入对象$File.fullname-追加
}
编写主机“Alle Dateien gefunden.Setze jetzt die SVN Property”

svn propset svn:keywords“LastChangedDate LastChangedRevision LastChangedBy Id HeadURL Revision Author Date”如果它将在一个字符串中包含多个文件,但不能同时处理所有文件,则可以使用Get Content的-ReadCount参数将其拆分为可管理的批

Get-Content $filelist -ReadCount 100 |
 foreach-object {
                 $filebatch = $_ -join ','
                }
将一次读取100个文件名,将它们合并到一个逗号分隔的列表中,然后您可以通过这些批处理进行foreach

Get-Content $filelist -ReadCount 100 |
 foreach-object {
                 $filebatch = $_ -join ','
                }