Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
批处理文件到zip Apache Tomcat,用于不等于今天的windows文件名_Apache_Tomcat_Batch File_Zip - Fatal编程技术网

批处理文件到zip Apache Tomcat,用于不等于今天的windows文件名

批处理文件到zip Apache Tomcat,用于不等于今天的windows文件名,apache,tomcat,batch-file,zip,Apache,Tomcat,Batch File,Zip,我们有许多ApacheTomcat 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的日期为:.yyy-MM-DD。但是,由于系统使用和其他原

我们有许多ApacheTomcat 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的日期为:.yyy-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

谢谢

这将根据名称中的日期字符串过滤文件名,并且
将回显其中没有todays日期的文件名

@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

非常感谢你的帮助。我确实做了一些更改,使用findstr而不是find。现在,我只需要提取压缩文件的日期(但是,这是另一个主题)
findstr
使用正则表达式,在上述情况下,可能会匹配一些意外的内容<代码>查找完全适用于上述用途。要以等效的方式使用findstr,您必须添加/L开关。我解决了我的问题。。我运行脚本的文件夹中有Cygwin工具的副本。我使用的查找来自Cygwin,而不是本机Windows。啊!!还有,我也在里面撒了一些紫苏。