gpt4 book ai didi

windows - 如何压缩文件名中包含今天日期的文件夹?

转载 作者:可可西里 更新时间:2023-11-01 10:11:35 28 4
gpt4 key购买 nike

我有一个批处理和一个 vbs 文件来压缩具有特定目录名称的文件夹并将其复制到另一个文件夹。

我怎样才能只压缩包含今天日期的文件夹?如果不可能,我怎么能只压缩今天日期为“修改日期”列的文件夹?

bat :

@echo off
set "mypath=C:\TEMP\zip\source\JEAR_20190115"
for /f %%i in ('dir /b /a-d "%mypath%"') do set "last=%%~ni"
CScript zip.vbs %mypath% C:\TEMP\zip\target\%last%.zip

vbs:

'Get command-line arguments.
Set objArgs = WScript.Arguments
InputFolder = objArgs(0)
ZipFile = objArgs(1)

'Create empty ZIP file.
CreateObject("Scripting.FileSystemObject").CreateTextFile(ZipFile,
True).Write "PK" & Chr(5) & Chr(6) & String(18, vbNullChar)

Set objShell = CreateObject("Shell.Application")

Set source = objShell.NameSpace(InputFolder).Items

objShell.NameSpace(ZipFile).CopyHere(source)

'Required!
wScript.Sleep 2000

例如,以下文件比今天旧,因此不应压缩。

set "mypath=C:\TEMP\zip\source\JEAR_20190115"

如果它等于今天的日期,脚本应该运行:

set "mypath=C:\TEMP\zip\source\JEAR_20190117"

上一个问题:https://stackoverflow.com/a/54216776/7420833

最佳答案

根据上一个问题,其余部分的解释保持不变,但我们只是添加一些 vbs 代码以获取所需格式的正确日期。

@echo off
echo >"%temp%\%~n0.vbs" s=DateAdd("d",0,now) : d=weekday(s)
echo>>"%temp%\%~n0.vbs" WScript.Echo year(s)^& right(100+month(s),2)^& right(100+day(s),2)
for /f %%a in ('cscript /nologo "%temp%\%~n0.vbs"') do set "result=%%a"
if exist "C:\TEMP\zip\source\JEAR_%result%" (
set "mypath=C:\TEMP\zip\source\JEAR_%result%"
) else (
exit
)
if "%mypath:~-1%"=="\" set "mypath=%mypath:~0,-1%"
for %%i in (%mypath%) do set "last=%%~nxi"
CScript zip.vbs %mypath% C:\TEMP\zip\target\%last%.zip

使用原因

关于windows - 如何压缩文件名中包含今天日期的文件夹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54235365/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com