PowerShell에 파일이 있는 경우 항목 제거

Marion Paul Kenneth Mendoza 2023년6월20일
PowerShell에 파일이 있는 경우 항목 제거

관리자로서 가능한 임무 중 하나는 아마도 파일을 관리하는 것일 것입니다. 이 상황은 일반적으로 여러 파일 서버를 관리하는 경우에 발생합니다.

서버 내에서 수행할 수 있는 특정 작업 중 하나는 파일을 다른 위치로 복사하여 회사 파일의 사본 또는 미러를 만드는 것입니다.

그러나 한 번에 대량 복사를 수행해야 하는 경우에는 어떻게 해야 합니까? 대량으로 복사하는 동안 대상 위치에서 기존 파일을 발견할 수도 있습니다.

이 문서에서는 파일을 대량으로 복사하고 대상 폴더에 있는지 확인하고 PowerShell을 사용하여 제거하는 방법을 설명합니다.

PowerShell에서 Copy-Item 뒤에 파일이 있는 경우 Remove-Item

이 기사에서는 Get-ChildItem, Remove-ItemCopy-Item 명령에 중점을 두고 사용합니다. 파일을 대량으로 복사하고 대상 폴더에 존재하는지 확인하고 존재하는 경우 파일을 제거하고 덮어쓸 수 있는 스크립트 블록을 공유할 것입니다.

따라서 아래와 같이 소스 및 대상 폴더를 선언하고 스크립트 블록을 드릴다운하고 자세히 논의해 보겠습니다.

예제 코드:

$sourceFolder = "C:\Temp"
$destFolder = "C:\PS"

Get-ChildItem $sourceFolder\Scripts -Recurse | %{
    Remove-Item $_ -ErrorAction Ignore
  	Copy-Item -Path $_.FullName -Destination $destFolder
}
  1. 먼저 $sourceFolder$destFolder 변수와 같은 각 변수 내에서 소스 및 대상 폴더를 선언합니다.

  2. 다음으로 Get-ChildItem 명령을 사용하여 폴더의 모든 파일을 가져와 배열 목록에 배치합니다. Get-ChildItem 명령은 여러 폴더에 적합할 수도 있습니다.

    여러 폴더를 확인하려면 아래 스니펫과 같이 대상 사이에 쉼표(,)를 삽입하십시오.

    Get-ChildItem $sourceFolder\Scripts, $sourceFolder\Test
    

    -Recurse 매개변수는 상위 소스 폴더의 하위 폴더에도 있는 파일을 확인하는 데 사용됩니다.

  3. 그런 다음 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 Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn

관련 문장 - PowerShell File