archivo por lotes para obtener la cadena parcial modificada por última vez en la variable

archivo por lotes para obtener la cadena parcial modificada por última vez en la variable

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

devuelve algo como esto

Última modificación
20140612095434.758265-240

Me gustaría poner esto en un archivo por lotes para asignar la parte en negrita de esa cadena a una variable para poder usarla más adelante en el archivo por lotes.

¡Cualquier ayuda es apreciada!

Este es mi archivo por lotes hasta ahora como referencia.

@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

Respuesta1

Me gustaría poner esto en un archivo por lotes para asignar la parte en negrita de esa cadena a una variable

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

devuelve algo como esto

Última modificación

20140612095434.758265-240

Puedes usar un for /fbucle para hacer esto. He aquí un pequeño ejemplo.

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

Su archivo por lotes con las modificaciones necesarias:

@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

Otras lecturas

información relacionada