마지막 수정된 문자열의 일부를 변수로 가져오는 배치 파일

마지막 수정된 문자열의 일부를 변수로 가져오는 배치 파일

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

다음과 같은 것을 반환합니다

마지막으로 수정됨
20140612095434.758265-240

나중에 배치 파일에서 사용할 수 있도록 해당 문자열의 굵게 표시된 부분을 변수에 할당하기 위해 이것을 배치 파일에 넣고 싶습니다.

도움을 주시면 감사하겠습니다!

이것은 지금까지 참조용 배치 파일입니다.

@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

답변1

해당 문자열의 굵게 표시된 부분을 변수에 할당하기 위해 이것을 배치 파일에 넣고 싶습니다.

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

다음과 같은 것을 반환합니다

마지막으로 수정됨

20140612095434.758265-240

for /f이를 위해 루프를 사용할 수 있습니다 . 다음은 작은 예입니다.

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

필요한 수정 사항이 포함된 배치 파일:

@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

추가 자료

  • Windows CMD 명령줄의 AZ 인덱스- Windows cmd 라인과 관련된 모든 것에 대한 훌륭한 참고 자료입니다.
  • 활성화 지연확장- 지연된 확장으로 인해 구문 분석 시간이 아닌 실행 시간에 변수가 확장됩니다.
  • /f에 대해- 다른 명령의 결과에 대해 명령을 반복합니다.
  • 변수- 변수(하위 문자열)의 일부를 추출합니다.
  • wmic- Windows 관리 계측 명령.

관련 정보