修改日期协助

时间:2017-06-01 12:58:43

标签: powershell

我有这段代码可以更改字符串(如果存在)。它完美地运作。但是,即使文件中不存在Server1字符串,它也会更改文件的修改日期。我需要它做的是如果字符串Server1不存在忽略并转移到文件夹中的其余文件。

有谁在这里知道如何实现这个目标?

$filenames = Get-ChildItem "C:\test\*.dtsconfig" -Recurse |
             select -Expand FullName

foreach ($filename in $filenames) {
  (Get-Content $filename) -replace 'Server1', 'Server2' | Set-Content $filename
}

2 个答案:

答案 0 :(得分:0)

仅当文件实际包含字符串“Server1”时才写入文件:

$txt = Get-Content $filename
if ($txt -like '*Server1*') {
  $txt -replace 'Server1', 'Server2' | Set-Content $filename
}

答案 1 :(得分:-1)

$fileNames = Get-ChildItem "C:\test\*.dtsconfig" -Recurse | Select -Expand FullName

foreach ($filename in $filenames) {
    $file = Get-Content $fileName   
    If ($file -like "*Server1*") {
        Get-Content $fileName -replace 'Server1', 'Server2' | Set-Content $fileName
    }
}

我在if语句中添加了它,因此在进行任何更改之前会进行检查。