Get-ChildItem | # get files
foreach {
$newName = [Regex]::Replace($_.BaseName, '\d{8}$', {
param($m)
[datetime]::ParseExact($m.Value, 'yyyyMMdd', $null).ToString('dd-MMM')
}) + $_.Extension
Rename-Item $_ $newName -WhatIf
$_
$newname
}
이것은 내가 한 모든 변경 GCI이었다 내 테스트 목록과 함께 일을 얻을-ChildItem을을합니다 ..하면 어떻게
: 작업을 수행 "이름 바꾸기 파일 "대상"항목 : C : \ ab \ file_four_20120701.txt 대상 : C : \ ab \ file_four_01-Jul.txt ".
다음과 같은 경우 대상 "항목 : C : \ ab \ file_one_20120620.txt 대상 : C : \ ab \ file_one_20-Jun.txt"에서 작업 "파일 이름 바꾸기"수행.
다음과 같은 경우 : 대상 "항목 : C : \ ab \ file_three_20120622.txt 대상 : C : \ ab \ file_three_22-Jun.txt"에서 "파일 이름 바꾸기"작업 수행.
다음과 같은 경우 : 대상 "항목 : C : \ ab \ file_two_20120621.txt 대상 : C : \ ab \ file_two_21-Jun.txt"에서 "파일 이름 바꾸기"작업 수행.
로 변환 정규 표현식만으로 숫자에서 텍스트까지의 달. – nhahtdh
위험한 소리입니다. 20120620이라는 파일과 20120605라는 파일 두 개가 있다면 어떻게됩니까? 충돌이있을 것입니다. 파일이 월별로 고유합니까? –
@nhahtdh - 나는 공중에서 텍스트를 가져올 수 없기 때문에 내가 할 수 있다고 생각하지 않았습니다. - http://stackoverflow.com/questions/5433313/convert-dd-mm-yyyy-to-mm-dd-yyyy -in-javascript - 아마도 VBA 함수에서 Sylvain Defresne의 대답과 비슷한 것을 할 수 있을까요? –