Batchdatei zum Abrufen eines Teils der zuletzt geänderten Zeichenfolge in einer Variablen

Batchdatei zum Abrufen eines Teils der zuletzt geänderten Zeichenfolge in einer Variablen

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

gibt so etwas zurück

Zuletzt bearbeitet
20140612095434.758265-240

Ich möchte dies in eine Batchdatei einfügen, um den fettgedruckten Teil dieser Zeichenfolge einer Variablen zuzuweisen, damit ich ihn später in der Batchdatei verwenden kann.

Jede Hilfe ist willkommen!

Dies ist meine bisherige Batchdatei als Referenz

@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

Antwort1

Ich möchte dies in eine Batchdatei einfügen, um den fettgedruckten Teil dieser Zeichenfolge einer Variablen zuzuweisen

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

gibt so etwas zurück

Zuletzt bearbeitet

20140612095434.758265-240

Sie können for /fdazu eine Schleife verwenden. Hier ist ein kleines Beispiel.

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

Ihre Batchdatei mit den erforderlichen Änderungen:

@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

Weitere Informationen

  • Ein AZ-Index der Windows CMD-Befehlszeile- Ein hervorragendes Nachschlagewerk zu allem, was mit der Windows-Eingabeaufforderung zu tun hat.
  • aktivierte verzögerte Erweiterung- Die verzögerte Erweiterung führt dazu, dass Variablen zur Ausführungszeit und nicht zur Analysezeit erweitert werden.
  • für /f- Befehl mit den Ergebnissen eines anderen Befehls wiederholen.
  • Variablen- Extrahieren Sie einen Teil einer Variablen (Teilzeichenfolge).
  • wmic- Befehl der Windows-Verwaltungsinstrumentation.

verwandte Informationen