PowerShell中与当前日期的三个文件比较



我正在编写一个脚本,将文件夹中的这三个特定文件与当前日期进行比较。我想将前两个文件相互比较,谁是最新的文件,它将与第三个文件进行比较,无论哪个文件最新,都将与当前日期进行比较,如果它与当前日期匹配,则调用停止进程,如果它较低,则调用批处理脚本,到目前为止,我从以前的脚本中得到了这个

$fileNameC = "D:ForbesIT_Dental_Software_BackupClearBackUp.dat-bak"
$fileNameB = 
$filenameC = 
if ( test-path $fileNameA ) ( test-path $filenameB {
  if ( (get-item $fileName).LastWriteTime -ge (get-date).Date ) {
    stop-process -Id $PID
  }
else {
    start-process C:ForbesITBackupCheckbackup_is_old.bat
     }  
  }
else {
    start-process C:ForbesITBackupCheckmissing_folder.bat
  }  

我是根据你在问题中所说的内容构建的。

$file1 = "C:temp1.txt"
$file2 = "C:tempaccounts.txt"
$file3 = "C:tempdata.log2"
$files = $file1,$file2,$file3
If(!((test-path $files) -eq $false).Count){
    $newestFile = Get-Item $files | Sort-object LastWriteTime -Descending | Select -First 1
    If($newestFile.LastWriteTime -ge (get-date).Date){
        Stop-Process -Id $PID
    } Else {
        start-process C:ForbesITBackupCheckbackup_is_old.bat
    }
} Else {
    start-process C:ForbesITBackupCheckmissing_folder.bat
}

这将检查所有三个$file,并根据LastWriteTime找到最新的一个。然后比较一下这个日期,看看是不是从今天开始。如果是,则PowerShell退出。如果日期较旧,则调用您的批次。

我不知道如何适应start-process C:ForbesITBackupCheckmissing_folder.bat,因为你没有在问题中提到它。

根据评论更新

我添加了另一个If !((test-path $files) -eq $false).Counttest-path将返回布尔值数组。如果any为false,则将调用丢失的文件夹批处理。0在转换为布尔值时为false FYI。

相关内容

  • 没有找到相关文章

最新更新