Windows PowerShell 공급자 네임스페이스에 포함된 항목의 이름을 바꿉니다.

구문

Rename-Item [-Path] <string> [-NewName] <string> [-Credential <PSCredential>] [-Force] [-PassThru] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>]

설명

Rename-Item cmdlet은 지정된 항목의 이름을 변경합니다. 이 cmdlet은 이름을 바꿀 항목의 내용에는 영향을 주지 않습니다.

새 이름과 함께 경로를 지정하는 등의 방법으로 Rename-Item을 사용하여 항목을 이동할 수는 없습니다. 항목을 이동하고 이름을 바꾸려면 Move-Item cmdlet을 사용하십시오.

매개 변수

-Credential <PSCredential>

이 작업을 수행할 수 있는 권한을 가진 사용자 계정을 지정합니다. 기본값은 현재 사용자입니다.

"User01" 또는 "Domain01\User01"과 같은 사용자 이름을 입력하거나 Get-Credential cmdlet에 의해 생성된 것과 같은 PSCredential 개체를 입력합니다. 사용자 이름을 입력하면 암호를 묻는 메시지가 표시됩니다.

이 매개 변수는 Windows PowerShell과 함께 설치된 어떤 공급자에서도 지원되지 않습니다.

필수 여부

false

위치

named

기본값

파이프라인 입력 적용 여부

true (ByPropertyName)

와일드카드 문자 적용 여부

false

-Force

cmdlet이 숨겨진 파일 또는 읽기 전용 파일이나 읽기 전용 별칭 또는 변수와 같이 다른 방법으로는 변경할 수 없는 항목 이름을 바꿀 수 있도록 허용합니다. cmdlet은 상수 별칭 또는 변수를 변경할 수 없습니다. 구현은 공급자마다 다릅니다. 자세한 내용은 about_Providers를 참조하십시오. Force 매개 변수를 사용해도 cmdlet은 보안 제한을 재정의할 수 없습니다.

필수 여부

false

위치

named

기본값

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-NewName <string>

항목의 새 이름을 지정합니다. 경로와 이름을 함께 입력하지 말고 이름만 입력합니다. Path 매개 변수에 지정된 경로와 다른 경로를 입력하면 Rename-Item은 오류를 생성합니다. 항목을 이동하거나 이름을 바꾸려면 Move-Item cmdlet을 사용합니다.

NewName 값에는 와일드카드 문자를 사용할 수 없습니다. 여러 파일의 이름을 지정하려면 정규식에 Replace 연산자를 사용합니다. Replace 연산자에 대한 자세한 내용을 보려면 "Get-Help about_Comparison_Operators"를 입력하십시오. 데모를 보려면 예를 참조하십시오.

필수 여부

true

위치

2

기본값

파이프라인 입력 적용 여부

true (ByPropertyName)

와일드카드 문자 적용 여부

false

-PassThru

항목을 나타내는 개체를 파이프라인으로 전달합니다. 기본적으로 이 cmdlet에서는 출력을 생성하지 않습니다.

필수 여부

false

위치

named

기본값

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-Path <string>

이름을 바꿀 항목의 경로를 지정합니다.

필수 여부

true

위치

1

기본값

파이프라인 입력 적용 여부

true (ByValue, ByPropertyName)

와일드카드 문자 적용 여부

false

-Confirm

명령을 실행하기 전에 확인 메시지를 표시합니다.

필수 여부

false

위치

named

기본값

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-WhatIf

명령을 실제로 실행하지 않고도 명령이 실행될 경우 발생할 수 있는 현상을 설명합니다.

필수 여부

false

위치

named

기본값

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-UseTransaction

명령을 활성 트랜잭션에 포함합니다. 이 매개 변수는 트랜잭션이 진행 중인 경우에만 유효합니다. 자세한 내용은 about_Transactions를 참조하십시오.

필수 여부

false

위치

named

기본값

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

<CommonParameters>

이 cmdlet은 -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer, -OutVariable 등의 일반 매개 변수를 지원합니다. 자세한 내용은 about_Commonparameters.

입력 및 출력

입력 유형은 cmdlet으로 파이프할 수 있는 개체의 유형입니다. 반환 유형은 cmdlet에서 반환되는 개체의 유형입니다.

입력

System.String

경로가 포함된 문자열을 Rename-Item으로 파이프할 수 있습니다.

출력

없음 또는 이름을 바꾼 항목을 나타내는 개체

Passthru 매개 변수를 사용하는 경우 Rename-Item은 이름을 바꾼 항목을 나타내는 개체를 생성합니다. 그렇지 않으면 아무 출력도 생성하지 않습니다.

참고

Rename-Item cmdlet은 모든 공급자가 제공하는 데이터에 사용할 수 있습니다. 세션에서 사용할 수 있는 공급자를 나열하려면 "Get-PsProvider"를 입력합니다. 자세한 내용은 about_Providers를 참조하십시오.

예 1

C:\PS>rename-item -path c:\logfiles\daily_file.txt -newname monday_file.txt

설명
-----------
이 명령은 daily_file.txt 파일의 이름을 monday_file.txt로 바꿉니다.






예 2

C:\PS>rename-item -path project.txt -newname d:\archive\old-project.txt

Rename-Item : Cannot rename because the target specified represents a path or device name.
At line:1 char:12
+ rename-item <<<<  -path project.txt -newname d:\archive\old-project.txt
    + CategoryInfo          : InvalidArgument: (:) [Rename-Item], PSArgumentException
    + FullyQualifiedErrorId : Argument,Microsoft.PowerShell.Commands.RenameItemCommand


C:\PS> move-item -path project.txt -destination d:\archive\old-project.txt
# Command succeeds

설명
-----------
이 예에서는 Rename-Item cmdlet을 사용하여 항목의 이름을 바꾸고 이동하는 두 가지 작업을 모두 수행할 수는 없음을 보여 줍니다. 경로가 Path 매개 변수에 지정된 경로와 동일한 경우가 아니면 NewName 매개 변수 값에 경로를 지정할 수 없습니다. 경로가 동일하지 않은 경우, 새 이름만 지정할 수 있습니다.

첫 번째 명령은 Rename-Item cmdlet을 사용하여 현재 디렉터리에 있는 project.txt 파일의 이름을 D:\Archive 디렉터리에 있는 old-project.txt로 바꿉니다. 명령을 실행하면 오류가 출력에 표시됩니다.

두 번째 명령은 Move-Item cmdlet을 사용하여 파일을 이동하고 이름을 바꾸는 올바른 방법을 보여 줍니다. Move-Item cmdlet을 사용하면 해당 Destination 매개 변수에 새 경로와 새 이름을 모두 지정할 수 있습니다.






예 3

C:\PS>rename-item HKLM:\Software\MyCompany\Advertising -NewName Marketing

설명
-----------
이 명령은 Rename-Item cmdlet을 사용하여 레지스트리 키의 이름을 Advertising에서 Marketing으로 바꿉니다. 명령이 완료되면 키 이름만 바뀌고 키의 레지스트리 항목은 변경되지 않습니다.






예 4

C:\PS>get-childItem *.txt | rename-item -newname { $_.name -replace '\.txt','.log' }

설명
-----------
이 예에서는 Replace 연산자를 사용하여 여러 파일의 이름을 바꾸는 방법을 보여 줍니다. NewName 매개 변수에 와일드카드 문자는 허용되지 않습니다.

이 명령은 현재 디렉터리 있는 모든 .txt 파일의 이름을 .log로 바꿉니다. 

이 명령은 먼저 Get-ChildItem cmdlet을 사용하여 파일 이름 확장명이 .txt인 현재 디렉터리의 모든 파일을 가져온 다음 파이프라인 연산자(|)를 사용하여 결과 파일을 Rename-Item cmdlet으로 보냅니다. 

Rename-Item 명령에서 NewName 매개 변수 값은 NewName 매개 변수로 값이 전송되기 전에 실행되는 스크립트 블록입니다.

스크립트 블록에서 $_ automatic 변수는 파이프라인을 통해 명령으로 전달되는 각 파일 개체를 나타냅니다. 명령은 점 형식(.)을 사용하여 각 파일 개체의 Name 속성을 가져옵니다. Replace 연산자는 각 파일의 ".txt" 파일 이름 확장명을 ".log"로 바꿉니다.

Replace 연산자는 정규식에 사용할 수 있기 때문에 "txt" 앞에 있는 점은 임의의 어떤 문자와도 일치하는 것으로 해석됩니다. 점(.)과만 일치하도록 하려면 백슬래시 문자(\)로 이스케이프해야 합니다. ".log"는 정규식이 아닌 문자열이므로 백슬래시 문자는 필요하지 않습니다.






참고 항목




목차