Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.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
Date 使用批处理文件将多个文件压缩为名称中带有最后一周日期的单个文件_Date_Batch File_7zip - Fatal编程技术网

Date 使用批处理文件将多个文件压缩为名称中带有最后一周日期的单个文件

Date 使用批处理文件将多个文件压缩为名称中带有最后一周日期的单个文件,date,batch-file,7zip,Date,Batch File,7zip,谁能帮忙吗。 我正在尝试设置一个每天运行的计划任务,将超过7天的日志文件压缩到一个zip文件中,但将日志文件的日期作为zip名称,而不是当前日期 到目前为止,我能做的最好的事情就是在文件名中使用当前日期。。。我想要7天前的日期作为文件名 我的脚本当前为: 有谁能帮我一下,使zip文件的日期不是文件创建的日期而是7天前 非常感谢修复了它。另一个站点的某人给了我一个powershell命令,用于获取当前日期,然后休假任意天数 powershell命令是: for /f "usebackq" %%i

谁能帮忙吗。 我正在尝试设置一个每天运行的计划任务,将超过7天的日志文件压缩到一个zip文件中,但将日志文件的日期作为zip名称,而不是当前日期

到目前为止,我能做的最好的事情就是在文件名中使用当前日期。。。我想要7天前的日期作为文件名

我的脚本当前为:

有谁能帮我一下,使zip文件的日期不是文件创建的日期而是7天前


非常感谢

修复了它。另一个站点的某人给了我一个powershell命令,用于获取当前日期,然后休假任意天数

powershell命令是:

for /f "usebackq" %%i in (`PowerShell $date ^= Get-Date^; $date ^= $date.AddDays^(-7^)^; $date.ToString^('yyyy-MM-dd'^)`) do echo Logs-%%i.zip
它的-7位实际上决定了你想回去多少天。我还被告知,你可以使用这个命令,通过使用一个与负数相对应的占有数来推进时间

然后我不得不稍微调整它,将其输出作为变量,以便添加到我的命令中

我最后的剧本是:

SET SourceDir=D:\test\Logs
SET TmpDir=D:\test\Temp
SET DestinationDir=D:\test\Dest
for /f "usebackq" %%i in (`PowerShell $date ^= Get-Date^; $date ^= $date.AddDays^(-7^)^; $date.ToString^('yyyy-MM-dd'^)`) do set LOGDATE=%%i

ROBOCOPY "%SourceDir%" "%TmpDir%" *.log /MOV /MINAGE:7 
FOR %%A IN (%TmpDir%\*.*) DO "C:\Program Files\7-Zip\7z.exe" a -tzip "%DestinationDir%\Logs-%LOGDATE%.zip" "%%A" 
RMDIR /S /Q "%TmpDir%"
SET SourceDir=D:\test\Logs
SET TmpDir=D:\test\Temp
SET DestinationDir=D:\test\Dest
for /f "usebackq" %%i in (`PowerShell $date ^= Get-Date^; $date ^= $date.AddDays^(-7^)^; $date.ToString^('yyyy-MM-dd'^)`) do set LOGDATE=%%i

ROBOCOPY "%SourceDir%" "%TmpDir%" *.log /MOV /MINAGE:7 
FOR %%A IN (%TmpDir%\*.*) DO "C:\Program Files\7-Zip\7z.exe" a -tzip "%DestinationDir%\Logs-%LOGDATE%.zip" "%%A" 
RMDIR /S /Q "%TmpDir%"