PowerShell에서 파일의 마지막 쓰기 시간 쿼리

Marion Paul Kenneth Mendoza 2023년6월21일
  1. PowerShell에서 파일 속성 쿼리
  2. PowerShell에서 값을 DateTime 형식으로 변환
  3. PowerShell에서 두 날짜의 차이 찾기
PowerShell에서 파일의 마지막 쓰기 시간 쿼리

파일을 관리할 때 가장 많이 확인하는 속성 중 하나는 파일이 마지막으로 수정된 시기입니다. 파일 탐색기를 통해 편리하게 빠르게 확인할 수 있습니다.

그러나 PowerShell을 사용하여 프로그래밍 방식으로 파일의 속성을 확인하려는 경우가 있습니다.

이 기사에서는 파일의 속성을 가져오고, 마지막 쓰기 시간을 쿼리하고, 현재 날짜와 다른 날짜를 가져오는 추가 명령을 수행하는 방법을 배우고 논의합니다.

PowerShell에서 파일 속성 쿼리

Windows PowerShell을 사용하면 Get-ItemProperty 명령을 사용하여 파일 속성을 쉽게 쿼리할 수 있습니다. 하나의 파일을 예로 들어 보겠습니다.

예제 코드:

$filepath = "C:\Temp\Login.log"
Get-ItemProperty -Path $filepath

위의 예에서는 Login.log의 기본 속성을 쿼리했습니다. 위의 스니펫은 파일 탐색기를 사용하여 파일 속성을 보는 방법을 모방합니다.

출력:

    Directory: C:\Temp


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----          6/7/2022   4:33 AM           4944 Login.log

Mode 속성 또는 파일 권한, Length 또는 파일 크기, LastWriteTime 또는 파일이 마지막으로 수정된 날짜 및 시간도 볼 수 있습니다.

이제 이 문서에서는 파일의 마지막 쓰기 시간에 더 집중하고 싶었으므로 아래의 업데이트된 코드 조각을 실행하여 이 속성을 분리해 보겠습니다.

예제 코드:

$filepath = "C:\Temp\Login.log"
(Get-ItemProperty -Path $filepath -Name LastWriteTime).LastWriteTime

출력:

Tuesday, June 7, 2022 4:33:02 AM

보시다시피 이제 파일의 마지막 수정 시간을 올바르게 분리했습니다. 그러나 현재 시간 및 날짜와 파일의 이전 쓰기 시간 간의 차이를 얻으려면 데이터 유형의 차이로 인해 오류가 발생합니다.

PowerShell에서 값을 DateTime 형식으로 변환

PowerShell에는 시스템의 날짜 및 시간 형식을 나타내는 DateTime이라는 특정 데이터 유형이 있습니다. 이전 출력은 String 형식이므로 아래 코드를 실행하여 이를 DateTime 형식으로 변환해 보겠습니다.

예제 코드:

$filepath = "C:\Temp\Login.log"
$lastWrite = [DateTime](Get-ItemProperty -Path $filepath -Name LastWriteTime).LastWriteTime

DateTime 값을 결과에 할당했습니다. 나중에 스크립트에 편의를 추가하기 위해 이렇게 했습니다.

PowerShell에서 두 날짜의 차이 찾기

이제 출력이 DateTime 형식이므로 간단한 수학 표현식을 수행하여 현재 쓰기 시간과 마지막 쓰기 시간의 차이를 편리하게 찾을 수 있습니다.

예제 코드:

$currDate = Get-Date
$currDate - $lastWrite

출력:

Days              : 0
Hours             : 17
Minutes           : 24
Seconds           : 57
Milliseconds      : 757
Ticks             : 626977577652
TotalDays         : 0.725668492652778
TotalHours        : 17.4160438236667
TotalMinutes      : 1044.96262942
TotalSeconds      : 62697.7577652
TotalMilliseconds : 62697757.7652

Get-Date 명령은 명령 실행 중 현재 날짜와 시간을 쿼리합니다. 명령은 DateTime 데이터 유형으로 저장되므로 준비된 마지막 쓰기 시간 값과 유사합니다.

DateTime 데이터 유형이 있는 두 개의 변수를 사용하여 더하기(+) 및 빼기(-)와 같은 수학 연산자를 사용하여 총 시간과 차이를 찾을 수 있습니다.

Marion Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn

관련 문장 - PowerShell File