我们有许多 Apache Tomcat for Windows 日志 - 例如..
server.log.2014-02-04-10
server.log.2014-02-04-11
server.log.2014-02-04-12
server.log.2014-02-05-13
server.log.2014-02-05-14
server.log.2014-02-05-15
这些是用 .YYYY-MM-DD-HH 的文件扩展名定义的,默认情况下 Apache 有它们的日期:.YYYY-MM-DD 但是,由于系统使用和其他原因,我们必须定义 HH 中断. 我正在尝试做一些非常简单的事情.. 如果文件扩展名不等于今天,将其存档(压缩)..
这是我所拥有的,无论我做什么,它都会显示:2014-02-05,即使脚本显示的是 .2014-02-04。
这是脚本,我不确定是否需要 SETLOCAL enabledelayexpansion..
rem http://www.dostips.com/DtTipsStringManipulation.php#Snippets.Replace
SETLOCAL enabledelayedexpansion
for /f "skip=1" %%x in ('wmic os get localdatetime') do if not defined MyDate set MyDate=%%x
set today=!MyDate:~0,4!-!MyDate:~4,2!-!MyDate:~6,2!
rem today=%MyDate:~0,8%
for %%i in (D:\11\*.*) do (
SET FILETIME=%%~xi
rem SET Dt=!FILETIME:~0,11!
rem IF NOT "!fldt!" == ".!today!" (
rem echo %%~ni%%~xi
rem )
)
pause
谢谢
最佳答案
这会根据名称中的日期字符串过滤文件名,
将回显其中没有今天日期的文件名。
@echo off
rem http://www.dostips.com/DtTipsStringManipulation.php#Snippets.Replace
SETLOCAL enabledelayedexpansion
for /f %%x in ('wmic os get localdatetime ^|find "." ') do set "MyDate=%%x"
set "today=!MyDate:~0,4!-!MyDate:~4,2!-!MyDate:~6,2!"
rem set "today=%MyDate:~0,8%"
for /f "delims=" %%a in ('dir "D:\11\*.*" /b ^|find /v ".%today%-" ') do (
echo "%%~fa"
)
pause
关于apache - 用于压缩 Apache Tomcat 的批处理文件,用于不等于今天的 Windows 文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21591293/