PowerShell을 사용하여 파일 및 폴더 이동
파일 및 폴더 이동은 Windows 운영 체제 또는 모든 운영 체제를 사용할 때 기본 작업입니다. 파일이나 폴더를 화면에 드래그 앤 드롭하여 하나씩 또는 대량으로 전송할 수 있지만 많은 특정 파일(예: 특정 파일 형식의 파일)만 이동해야 하는 경우 스크립팅을 고려해야 할 수 있습니다.
이 문서에서는 대량 수정을 위해 PowerShell 스크립팅을 사용하여 파일 및 디렉터리를 이동할 때 몇 가지 필수 cmdlet에 대해 설명합니다.
PowerShell을 사용하여 파일 또는 폴더가 존재하는지 확인
Test-Path
명령은 파일 또는 디렉터리 경로의 존재 여부에 따라 True
또는 False
를 반환하는 기본 PowerShell 기본 제공 cmdlet입니다. 단일 파일이 있는지 쿼리해야 하는 경우 Test-Path
PowerShell 명령을 사용할 수 있습니다.
시연하려면 현재 작업 디렉토리에 (test.txt)
파일을 만들거나 다른 기존 파일을 선택하십시오. 테스트 파일을 선택했으면 아래 명령을 실행하여 (C:\Temp\PS) 및 파일 이름(test.txt)
경로를 바꿉니다.
Test-Path
명령은 실행될 때 부울 값을 반환합니다.
명령:
Test-Path C:\Temp\PS\test.txt
위의 예에서 명령은 (test.txt)
파일이 존재하는 경우 True
값을 반환합니다. 그렇지 않으면 콘솔에 False
값이 표시됩니다.
PowerShell을 사용하여 파일 및 폴더 만들기
Windows PowerShell New-Item
명령은 파일과 디렉터리를 모두 만듭니다. 다음은 Windows PowerShell New-Item
cmdlet을 사용하여 파일과 폴더를 만드는 두 가지 예입니다.
명령:
# Create a Folder
New-Item -ItemType 'Directory' -Name 'C:\Temp\PS'
# Create a File
New-Item -ItemType 'File' -Name 'Test.txt' -Path '.\PS'
PowerShell을 사용하여 파일 및 폴더 이동
PowerShell 파일 이동 명령인 Move-Item
cmdlet은 단일 파일 또는 디렉터리를 이동하는 데 사용되며 콘텐츠를 한 위치에서 다음 위치로 빠르게 전송하는 데 도움이 되는 필터링 기능을 제공합니다.
아래 예에서는 이전에 생성한 TestFile.txt
파일을 상위 디렉토리로 이동합니다. ..
구문을 사용하여 현재 위치에서 상위 디렉터리를 나타내고 Windows PowerShell Move-Item
명령을 사용하여 파일을 이동합니다.
명령:
Move-Item -Path '.\TestFile.txt' -Destination '..'
파일을 이동할 수 있을 뿐만 아니라 항목 이동
명령을 사용하여 폴더를 이동할 수도 있습니다.
먼저 이동해야 하는 폴더에 대한 -Path
매개 변수의 값을 지정해야 합니다. -Path
매개변수에서 파일 확장자를 제거했습니다.
명령:
Move-Item -Path '.\PSScripts` -Destination '..'
파일과 폴더를 작업 디렉토리의 직계 상위 폴더가 아닌 폴더로 전송하고 싶을 수 있습니다. 그런 다음 -Destination
매개변수에 사용자 정의 디렉토리를 제공할 수 있습니다.
명령:
Move-Item -Path '.\PSScripts` -Destination 'C:\Temp'
-Destination
매개변수에 제공된 대상 폴더가 존재하지 않으면 스크립트에서 오류가 발생합니다. Move-Item
cmdlet을 사용할 때 주의할 점은 대상 디렉터리가 존재하지 않는 경우 새 디렉터리를 만들지 않는다는 것입니다.
이전에 언급한 Test-Path
및 New-Item
명령을 사용하여 이 문제를 해결할 수 있습니다. 아래 스크립트 블록에서 먼저 대상 경로를 확인하여 존재하는지 확인합니다.
폴더가 없으면 스크립트가 먼저 폴더를 만듭니다. 일단 생성되면 이제 파일 또는 폴더 전송을 시작합니다.
암호:
$current_folder = "C:\Temp\PS"
$new_folder = "C:\PS\PSScripts"
if (Test-Path -path $new_folder) {
Move-Item -Path $current_folder -Destination $new_folder
}else{
New-Item -ItemType 'Directory' -Name $new_folder
Move-Item -Path $current_folder -Destination $new_folder
}
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn