adiciona pasta a 7z com data atual na frente

0

Eu tenho uma pasta Foo que eu quero fazer backup para Foo.2018.07.12.7z

e até agora eu tentei este comando:

C:\"Program Files"-Zipz a "Foo%DATE%".7z Foo

mas o problema é que o meu formato de data tem barras, por isso cria pastas aninhadas como: Foo1218.7z

    
por Omu 12.07.2018 / 18:09

2 respostas

1

Eu prefiro obter data / hora em um formato independente de configuração de local / usuário.

Aqui estão duas maneiras diferentes de conseguir isso:

:: Q:\Test18\SU_1338640.cmd
@Echo off

:: use wmic to get date in a locale/user settings independent format
for /f "tokens=1-3 delims=.+-" %%A in (
  'wmic os get LocalDateTime^|findstr ^^[0-9]'
) do Set _DT=%%A
Set "Archive=Foo.%_DT:~0,4%.%_DT:~4,2%.%_DT:~6,2%.7z"
Echo Archive=%Archive%

:: use powershell to get date in a locale/user settings independent format
for /f %%A in (
  'Powershell -Nop -C "Get-Date -f yyyy.MM.dd" '
) do Set "_DT=%%A"
Set "Archive=Foo.%_DT%.7z"
Echo Archive=%Archive%

Exemplo de saída:

> Q:\Test18\SU_1338640.cmd
Archive=Foo.2018.07.12.7z
Archive=Foo.2018.07.12.7z
    
por 12.07.2018 / 18:59
1

Aqui está a solução em lote que eu usaria para executar esta operação, exatamente como você especificou, mas com uma sintaxe ligeiramente diferente e um pouco mais explícita. Eu também usaria data e substrings variáveis para definir a data no formato adequado que você deseja, mas eu nomearia a variável de data %Dt% e não %DATE% .

Script em lote

@ECHO OFF

SET Dt=%date:~10%.%date:~4,2%.%date:~7,2%
SET SrcFolder=C:\Test\Foo
SET DestPath=C:\Destination\Folder

"C:\Program Files-Zipz" a "%DestPath%\Test.%Dt%.7z" "%SrcFolder%"

Mais recursos

por 12.07.2018 / 18:49