在查找和替换后添加新行

时间:2018-05-16 15:15:08

标签: powershell

我有一段代码片段可以获取每个文件的内容,如果它与我的变量列表匹配,它将替换其中的值。

代码工作正常。但是,在扫描之后,它会在文件末尾留下一个空行,我不想发生这种情况。

# 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    
}

0 个答案:

没有答案