2017-11-01 2 views
-2

서버와 함께 한 위치에서 다른 위치로 파일을 이동해야합니다. 30 일보다 오래된 파일을 이동해야합니다. 예 : 원본 경로 : C :/sharedPath/대상 경로 : D :/BackUpSharepath 여기의 문제는 sharedPath 폴더에 하위 폴더가 'n'개 포함되어 있습니다. 폴더 구조를 방해하지 않고 파일을 이동해야합니다. 이동 된 파일은 원본 폴더 구조와 동일해야합니다. 사전에스크립팅 - Powershell, Batch, Robocopy

감사

+4

그럼 특정 질문은 무엇입니까? StackOverFlow는 무료 코드 작성 서비스가 아닙니다. 우리는 귀하의 기존 코드를 당신을 도울 것입니다. 'ROBOCOPY'로 이것을 할 수 있어야합니다. – Squashman

+0

나는 스쿼시 만 (Squashman)에 동의한다.'ROBOCOPY'는이 일을 끝내야한다. SO에 관한 좋은 질문을하기 위해서는 [이 링크] (https://stackoverflow.com/help/how-to-ask)를 참조하십시오. – cet51

답변

0
$files = Get-ChildItem -Path C:\Temp2\start\* -Recurse | Where-Object {$_.LastWriteTime -lt (Get-Date).AddDays(-30) } 
foreach($file in $files) 
{ 
$DirectoryName = $file.DirectoryName -replace "start", "finish" 
if(!(Test-Path -Path $DirectoryName)) 
{ 
    New-Item $DirectoryName -ItemType Directory 
} 

$newLocation = $file.FullName -replace "start", "finish" 
Copy-Item -Path $file.FullName -Destination $newLocation.ToString() -Force 

} 

복사 항목은 구조를 유지하지 않습니다. 그래서 첫 번째 부분은 30 일간의 마지막 수정 날짜로 모든 파일을 가져옵니다. 그런 다음 모든 파일을 탐색하고 디렉토리 이름을 꺼내서 새 디렉토리 대상으로 수정합니다. (시작점은 start라는 폴더 였고 내 대상은 필요한대로 수정 완료되었습니다.) 그런 다음 목적지가 있는지 테스트합니다. 그렇지 않으면 대상을 만든 다음 파일을 새 대상에 복사합니다.

+0

내 원래 폴더 구조는 시작 디렉토리의 경우 C : \ Temp2 \ start이고 대상 디렉토리의 경우 C : \ Temp2 \ finish입니다. – JMIII

관련 문제