Как заархивировать папки, содержащие сегодняшнюю дату в имени файла? - PullRequest
0 голосов
/ 17 января 2019

У меня есть пакет и VBS-файл, чтобы сжать папку с определенным именем каталога и скопировать ее в другую папку.

Как я могу заархивировать только папку с сегодняшней датой? Если это невозможно, как можно заархивировать только папку с сегодняшней датой в столбце «Дата изменения»?

летучая мышь:

@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

1 Ответ

0 голосов
/ 17 января 2019

Остальные объяснения остаются такими же, как и в предыдущем вопросе, но мы просто добавляем код 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

Причина использования

...