我试图让我的Power
Shell脚本读取多个文件夹中不同.ctl文件的特定行8,并使用预先制作的文本和用户在文本框中输入的内容覆盖它.
PowerShell脚本:
$handler_button3_Click={
if ($textbox1.TextLength -eq 0)
{
$listBox1.Items.Add("Please Register your Release Number!")
}else{
#saving the number in releasenr
$releasenr = $textbox1.Text
#TODO: Loop which goes into every file on different Folders and replaces
#line 8 in all .ctl files with following text: "rel_nr constant "$releasenr""
$listBox1.Items.Clear()
$listBox1.Items.Add("Release Number has been overwritten")
$listBox1.Items.Add("You can now proceed your Upload")
}
}
有没有办法使用for循环来覆盖当前文件夹中的foreach文件?
最佳答案 使用
Get-ChildItem cmdlet检索文件,使用
ForEach-Object cmdlet对其进行迭代,使用
Get-Content读取文件内容,覆盖特定行,最后使用
Set-Content cmdlet将文本写回文件:
Get-ChildItem 'yourFolder' -Filter '*.ctl' | ForEach-Object {
$content = Get-Content $_
$content[7] = 'rel_nr constant "{0}"' -f $releasenr
$content | Set-Content -Path $_.FullName
}