파일을 확인할 수 있습니 그 날짜에 이름보다 큰 일부 특정 날짜를 사용하여 Powershell 스크립트

0

질문

나는 특정 날짜"2021/11/28",내가 원하는 목록에서 파일 예제 파일명을(아래)그 파일의 이름보다 큰 2021/11/28. 기억하지 창조의 시간은 파일 이름입니다.

 "test_20211122_aba.*"
 "abc_20211129_efg.*"
 "hij_20211112_lmn.*" 
 "opq_20211130_rst.*"

예를 얻

 "abc_20211129_efg.*"
 "opq_20211130_rst.*"

당신의 도움이 정말 감사합니다.

powershell powershell-4.0
2021-11-23 18:40:47
1

최고의 응답

1

지 엄격하게 필요한 구문 분석하의 문자열로 날짜([datetime] 인스턴스):기 때문에 날짜 문자열 에 포함된 파일의 이름은 형식으로 그들의 어휘 를 정렬 해당을 연대순으로 정렬을 비교할 수 있습니다 문자열 표현이 직접:

# Simulate output from a Get-ChildItem call.
$files = [System.IO.FileInfo[]] (
  "test_20211122_aba1.txt",
  "abc_20211129_efg2.txt",
  "hij_20211112_lmn3.txt",
  "hij_20211112_lmn4.txt",
  "opq_20211130_rst5.txt"
)

# Filter the array of files.
$resultFiles = 
  $files | Where-Object {
    $_.Name -match '(?:^|.*\D)(\d{8})(?:\D.*|$)' -and
      $Matches[1] -gt ('2021/11/28"' -replace '/')
   }

# Print the names of the filtered files.
$resultFiles.Name
  • $_.Name -match '(?:^|.*\D)(\d{8})(?:\D.*|$)' 를 찾(마지막)가 실행되는 정확하게의 8 자리에서 각각의 파일 이름 통해 캡처 그룹((...)),에 반영동 $Matches 변수의 항목으로 인덱스 1 ($Matches[1])이후에 발견하는 경우.

  • '2021/11/28"' -replace '/' 모두 제거합니다 / 에서 문자를 입력 문자열하게 날짜의 형식 문자열은 동일합니다. 간결하게 하기 위해 위의 솔루션을 수행 교체 각 루프에서 작동. 에서 연습을 할 것이라 그것은 일단전에,반복,그리고 지정 결과는 변수에 사용하기 위해 루프 안에서.

2021-11-23 20:35:51

확실히,나는 곧 것입니다. 어떻게든 내가 보지 못하트. 댓글을 다시"Awesome! 코드습니다. 감사 톤"
Razz

수 pls 도움이됩니다. 나는 작업에 다른 스크립트는 필요하와 같은 비교가 오늘의 데이트를 이용해 보세요. 같은 것이지만 나를 포맷 문제입니다. Where-Object {$_.Name -match '(?:^|.*\D)(\d{8})(?:\D.*|$)' -and $Matches[1] -eq (Get-Date).Date}
Razz

@Razz,대체 (Get-Date).Date(Get-Date).ToString('yyyyMMdd'). 도움이 더 필요한 경우,새로 만드십시오 질문을 게시합니다.
mklement0

다른 언어로

이 페이지는 다른 언어로되어 있습니다

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................