我有一段代码片段可以获取每个文件的内容,如果它与我的变量列表匹配,它将替换其中的值。
代码工作正常。但是,在扫描之后,它会在文件末尾留下一个空行,我不想发生这种情况。
# From the location set in the first statement
# Recurse through each file in each folder that has an extension defined
# in-Include
$configFiles = Get-ChildItem $Destination -Recurse -File -Exclude *.exe,*.css,*.scss,*.png,*.min.js
foreach ($file in $configFiles) {
Write-Host $file.FullName
# Get the content of each file and search and replace values as defined in
# the searc/replace table
$fileContent = Get-Content $file.FullName
$fileContent | ForEach-Object {
$line = $_
$lookupTable.GetEnumerator() | ForEach-Object {
# [Regex]::Escape($_.Key) treats regex metacharacters in the search
# string as string literals
if ($line -match [Regex]::Escape($_.Key)) {
$line = $line -replace [Regex]::Escape($_.Key), $_.Value
}
}
$line
} | Set-Content $file.FullName
}
我尝试添加:
Set-Content $file.FullName -NoNewline
这只是将文件中的所有内容放在一行上。
有些文件最后会有一个空白行,我想保持不变,所以我不能只删除每个文件的最后一行。
完成扫描后如何阻止此脚本添加新行?
$lookuptable
供参考:
$lookupTable = @{
'Dummy' = $ReplacementValue
'Dummy2' = $ReplacementValue
}