PowerShell에 파일이 있는 경우 항목 제거
관리자로서 가능한 임무 중 하나는 아마도 파일을 관리하는 것일 것입니다. 이 상황은 일반적으로 여러 파일 서버를 관리하는 경우에 발생합니다.
서버 내에서 수행할 수 있는 특정 작업 중 하나는 파일을 다른 위치로 복사하여 회사 파일의 사본 또는 미러를 만드는 것입니다.
그러나 한 번에 대량 복사를 수행해야 하는 경우에는 어떻게 해야 합니까? 대량으로 복사하는 동안 대상 위치에서 기존 파일을 발견할 수도 있습니다.
이 문서에서는 파일을 대량으로 복사하고 대상 폴더에 있는지 확인하고 PowerShell을 사용하여 제거하는 방법을 설명합니다.
PowerShell에서 Copy-Item
뒤에 파일이 있는 경우 Remove-Item
이 기사에서는 Get-ChildItem
, Remove-Item
및 Copy-Item
명령에 중점을 두고 사용합니다. 파일을 대량으로 복사하고 대상 폴더에 존재하는지 확인하고 존재하는 경우 파일을 제거하고 덮어쓸 수 있는 스크립트 블록을 공유할 것입니다.
따라서 아래와 같이 소스 및 대상 폴더를 선언하고 스크립트 블록을 드릴다운하고 자세히 논의해 보겠습니다.
예제 코드:
$sourceFolder = "C:\Temp"
$destFolder = "C:\PS"
Get-ChildItem $sourceFolder\Scripts -Recurse | %{
Remove-Item $_ -ErrorAction Ignore
Copy-Item -Path $_.FullName -Destination $destFolder
}
-
먼저
$sourceFolder
및$destFolder
변수와 같은 각 변수 내에서 소스 및 대상 폴더를 선언합니다. -
다음으로
Get-ChildItem
명령을 사용하여 폴더의 모든 파일을 가져와 배열 목록에 배치합니다.Get-ChildItem
명령은 여러 폴더에 적합할 수도 있습니다.여러 폴더를 확인하려면 아래 스니펫과 같이 대상 사이에 쉼표(
,
)를 삽입하십시오.Get-ChildItem $sourceFolder\Scripts, $sourceFolder\Test
-Recurse
매개변수는 상위 소스 폴더의 하위 폴더에도 있는 파일을 확인하는 데 사용됩니다. -
그런 다음
Remove-Item
명령을 사용하여 이미 존재하는 파일을 제거합니다. 보시다시피, 오류가 발생한 경우 조치 기본 설정을 지정하는-ErrorAction
이라는 매개변수를 사용했습니다.이 경우 오류가 발생하면 대상 파일에 파일이 존재하지 않습니다. 작업 기본 설정은
무시
로 설정되어 오류가 발생한 경우항목 제거
명령을 무시하고 해당 줄에서 스크립트 실행을 계속합니다.또는 아래 예제 조각과 같은 별칭을 사용하여 이 명령줄을 줄일 수 있습니다.
rm yourfile.zip -ea ig
항목 이동
명령으로 파일 복사
항목 복사
의 대안으로 항목 이동
명령을 사용할 수도 있습니다. 항목 이동
명령은 대상 폴더에 파일이 있는지 자동으로 확인합니다.
값이 true
인 경우 명령은 파일을 건너뜁니다. 즉, Remove-Item
명령줄을 삭제하고 아래 코드 스니펫과 같은 더 짧은 스크립트를 가질 수 있습니다.
$sourceFolder = "C:\Temp"
$destFolder = "C:\PS"
Get-ChildItem $sourceFolder\Scripts -Recurse | %{
Move-Item -Path $_.FullName -Destination $destFolder
}
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn