我想要一个检查并显示文件是否以及何时更改的批次。
如果今天C:\ temp \ test \ TEST.LOG已更改(检查日),则显示/回显更改时间。 (例如:“文件已更改16:55 ”)
如果今天Not C:\ temp \ test \ TEST.LOG已更改(检查日),则显示/ echo“文件今天尚未更改 “
答案 0 :(得分:1)
最简单的方法是启动PowerShell,它具有更强大的日期操作功能和文件查询功能。您可以从批处理文件中运行它,如下所示:
powershell -ExecutionPolicy Bypass -Command "& { if ($(Get-Item c:\temp\test\test.log).LastWriteTime-gt [DateTime]::Today) { Write-Host "File Changed at $(Get-Item c:\temp\test\test.log).LastWriteTime" } else { Write-Host "File not changed" }}"
这是powershell命令格式更好,为了您的理解
if ($(Get-Item c:\temp\test\test.log).LastWriteTime-gt [DateTime]::Today) {
Write-Host "File Changed at $(Get-Item c:\temp\test\test.log).LastWriteTime"
}
else {
Write-Host "File not changed"
}
答案 1 :(得分:0)
@ECHO OFF
SETLOCAL
SET "targetfile=c:\temp\test\test.log"
IF NOT EXIST %targetfile% ECHO %targetfile% does NOT exist&GOTO :eof
FOR %%a IN ("%targetfile%") DO FOR /f "tokens=1*delims= " %%b IN ('ECHO %%~ta') DO IF "%date%"=="%%b" (
ECHO File changed %%c
) ELSE ECHO File has NOT been changed today
GOTO :EOF
这应该有效。根据您的日期/时间设置,您可能需要勾选tokens=
和delims
。
只需找到目标的日期/时间,将其分为%%b
中的日期部分和%%c
中的时间。将%%b
与当前日期进行比较;如果相同,它今天已被更改,所以从%%c
显示文件的日期,否则,今天它没有被更改。