apache - 用于压缩 Apache Tomcat 的批处理文件,用于不等于今天的 Windows 文件名

标签 apache tomcat batch-file zip

我们有许多 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/

相关文章:

objective-c - 在 debian (Apache) 后台运行 php 脚本

apache - 重写旧的子文件夹 url

tomcat - 在 Tomcat 的自定义主机上部署应用程序

jsp :include 处的 Tomcat MemoryRealm 身份验证

c - 如何多次运行 C 程序并记录输出?

apache - Systemctl和服务命令的区别

apache - 是否可以在 ProxyPass/ProxyPassReverse 中使用相对路径?

windows - 用于在 Win 7 中启动程序的批处理文件(常规+管理员)

通过 Chef 部署 Java 应用程序(聊天服务器 + 客户端)?

batch-file - 错误 : "|" was unexpected at this time batch script