자, 이제 전체 RegEx 태그가 올바른 경로에 있습니다. 내가 한 일은 마지막 백 슬래시까지 모든 것을 찾은 다음 5 자리를 캡처 한 다음 줄 끝까지 백 슬래시가 아닌 캡처 된 그룹 만 반환하는 것입니다. 변수를 $ItemNumber
으로 설정하고 대상에서 사용했습니다. 대상 소스 폴더의 모든 항목에 대해 ForEach 루프에서 실행했습니다. 이 같은
ForEach($File in (GCI "X:\Property Files\*.PDF")){
$ItemNumber = $File.Fullname -replace ".+?\\(\d{5})[^\\]*$", "`$1"
move-item -path X:\"Property Files"\05165*.pdf -destination X:\"Property Files"\"* -- $ItemNumber"
}
당신이 원하는 경우에 당신은 파이프를 통해 그것을 할 수 있습니다 : 다음은 내가 함께 결국 코드의
GCI "X:\Property Files\*.PDF"|%{move-item -path X:\"Property Files"\05165*.pdf -destination X:\"Property Files"\"* -- $($_.Fullname -replace ".+?\\(\d{5})[^\\]*$", "`$1")"}
는하지만 그 종류의 긴 나와서, 어떤 사람들은 정말하지 않습니다 한 줄의 길처럼.
해당 RegEx는 테스트 할 수 있습니다. here, 그리고 모든 문제가 해결되었습니다. 대상 폴더를 가정 (regex101.com 설명 링크) 한 라이너로
정말 고마워요. 그것은 완벽하게 작동했습니다. 필자는 전체 디렉토리로 이동하기 전에 * 5 앞에 5 자리 숫자를 사용하여 파일을 시험해 보았습니다. 그리고 작업이 끝난 후에 별표를 다시 입력하고 Enter 키를 눌러 테스트했습니다. 내 컴퓨터에서 약 한 시간이 걸렸지 만 이전보다 훨씬 빨랐습니다. 시간 절약에 감사드립니다. :-) – user3516394