arquivo em lote para obter a string lastmodified parcial para a variável

3

WMIC path Win32_Directory WHERE name="W:\foldername" get lastmodified

retorna algo assim

LastModified
20140612095434.758265-240

Eu gostaria de colocar isso em um arquivo de lote para atribuir a parte em negrito dessa string a uma variável, para que eu possa usá-la posteriormente no arquivo em lote.

Qualquer ajuda é apreciada!

Este é o meu arquivo de lote até agora para referência

@echo off
@cls
net use W: \file\home\ex-employees
cd W:
W:

REM Get user ID
set /p id="Enter ID of user to Archive: "

REM Get last modified code goes here assigned to "LM" variable
REM
REM WMIC path Win32_Directory WHERE name='W:\rsink' get lastmodified

REM Join Variables
call set filename=%%%id%%LM%%%

call zipjs.bat zipItem -source %id% -destination .\%filename%.zip -keep yes -force no

rmdir /S /Q %id%

Echo All Done!
@pause
    
por LeperMessiah 01.09.2016 / 16:30

1 resposta

2

Gostaria de colocar isso em um arquivo de lote para atribuir a parte em negrito dessa string a uma variável

WMIC path Win32_Directory WHERE name="W:\foldername" get lastmodified

retorna algo assim

LastModified

20140612095434.758265-240

Você pode usar um loop for /f para fazer isso. Aqui está um pequeno exemplo.

GetLastModifiedDate.cmd:

@echo off 
rem GetLastModifedDate.cmd
setlocal enabledelayedexpansion
rem skip header line
rem use findstr to remove blank lines
for /f "skip=1 tokens=*" %%d in ('WMIC path Win32_Directory WHERE name^="f:\test" get lastmodified ^| findstr /r /v "^$"') do (
  set LM=%%d
  rem required part is alway 8 chars yyyymmdd so strip first 8 chars
  set LM=!LM:~0,8!
  )
echo %LM%
endlocal

Seu arquivo de lote com as modificações necessárias:

@echo off
@cls
setlocal enabledelayedexpansion 
net use W: \file\home\ex-employees
cd W:
W:

REM Get user ID
set /p id="Enter ID of user to Archive: "

REM Get last modified code goes here assigned to "LM" variable
rem skip header line
rem use findstr to remive blank lines
for /f "skip=1 tokens=*" %%d in ('WMIC path Win32_Directory WHERE name^="W:\rsink" get lastmodified ^| findstr /r /v "^$"') do (
  set LM=%%d
  rem required part is alway 8 chars yyyymmdd so strip first 8 chars
  set LM=!LM:~0,8!
  )

REM Join Variables
call set filename=%%%id%%LM%%%

call zipjs.bat zipItem -source %id% -destination .\%filename%.zip -keep yes -force no

rmdir /S /Q %id%

Echo All Done!
@pause

Leitura Adicional

por 01.09.2016 / 17:20

Tags