Переименовывает элемент в пространстве имен поставщика Windows PowerShell.

Синтаксис

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

Описание

Командлет Rename-Item изменяет имя указанного элемента. При использовании данного командлета содержимое элемента не изменяется.

Нельзя использовать командлет Rename-Item для перемещения элемента, например, посредством задания пути вместе с новым именем. Чтобы переместить и переименовать элемент, воспользуйтесь командлетом Move-Item.

Параметры

-Credential <PSCredential>

Задает учетную запись пользователя, который располагает разрешением для выполнения этого действия. По умолчанию используется значение "Текущий пользователь".

Введите имя пользователя, например "User01" или "Domain01\User01", или введите объект PSCredential, например объект, создаваемый командлетом Get-Credential. При вводе имени пользователя система запросит пароль.

Этот параметр не поддерживается ни одним из установленных с Windows PowerShell поставщиком.

Обязательно?

false

Позиция?

named

Значение по умолчанию

Принимать входные данные из конвейера?

true (ByPropertyName)

Принимать подстановочные знаки?

false

-Force

Позволяет командлету переименовать элементы, которые не могут быть изменены другим образом, например скрытые файлы, файлы только для чтения, псевдонимы или переменные только для чтения. Командлет не может изменять псевдонимы или переменные, являющиеся константами. Реализация варьируется от поставщика к поставщику. Дополнительные сведения см. в разделе About_Providers. Даже при использовании параметра Force командлет не может переопределить ограничения безопасности.

Обязательно?

false

Позиция?

named

Значение по умолчанию

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

-NewName <string>

Задает новое имя элемента. Введите только имя, а не путь и имя. Если ввести путь, отличный от указанного в параметре Path, командлет Rename-Item выдает ошибку. Чтобы переименовать и переместить элемент, воспользуйтесь командлетом Move-Item.

В значении параметра NewName нельзя использовать подстановочные знаки. Чтобы задать имена для нескольких файлов, используйте оператор Replace в регулярном выражении. Чтобы получить дополнительные сведения об операторе Replace, введите команду "Get-Help about_Comparison_Operators". Порядок использования см. в примерах.

Обязательно?

true

Позиция?

2

Значение по умолчанию

Принимать входные данные из конвейера?

true (ByPropertyName)

Принимать подстановочные знаки?

false

-PassThru

Передает по конвейеру объект, представляющий элемент. По умолчанию этот командлет не формирует никаких выходных данных.

Обязательно?

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>

Данный командлет поддерживает общие параметры -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer и -OutVariable. Дополнительные сведения см. в разделе about_Commonparameters.

Ввод и вывод

Входным типом является тип объектов, которые можно передавать командлету по конвейеру. Возвращаемым типом является тип объектов, возвращаемых командлетом.

Входные данные

System.String

Строку, содержащую путь, можно передать командлету Rename-Item по конвейеру.

Выходные данные

Нет или объект, представляющий переименованный элемент.

При использовании параметра Passthru командлет Rename-Item создает объект, представляющий переименованный элемент. В противном случае этот командлет не формирует никаких выходных данных.

Примечания

Командлет Rename-Item предназначен для работы с данными, предоставляемыми любым поставщиком. Чтобы получить список поставщиков, доступных в текущем сеансе, введите команду "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 не позволяет одновременно переименовать и переместить элемент. В качестве значения параметра NewName можно задать путь только в случае, если этот путь совпадает со значением параметра Path. Во всех остальных случаях разрешается использовать только новое имя.

Первая команда с помощью командлета Rename-Item изменяет имя файла project.txt, расположенного в текущем каталоге, присваивая ему новое имя old-project.txt, после чего предпринимается попытка перемещения файла в каталог "D:\Archive". В результате формируется сообщение об ошибке.

Вторая команда представляет правильный способ перемещения и переименования файла с помощью командлета Move-Item. Командлет Move-Item позволяет задать в значении параметра Destination как новый путь, так и новое имя.






Пример 3

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

Описание
-----------
Эта команда с помощью командлета Rename-Item переименовывает раздел реестра Advertising в Marketing. После выполнения команды имя раздела изменяется, а записи реестра в этом разделе не изменяются.






Пример 4

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

Описание
-----------
В этом примере показано, как использовать оператор Replace для переименования нескольких файлов, даже несмотря на то что в значении параметра NewName нельзя использовать подстановочные знаки.

Эта команда переименовывает все файлы с расширением ".txt" в текущем каталоге в файлы с расширением ".log". 

С помощью командлета Get-ChildItem эта команда получает все файлы из текущего каталога, имеющие расширение ".txt". Затем с помощью оператора конвейера (|) результирующие файлы передаются командлету Rename-Item. 

В командлете Rename-Item значение параметра NewName является блоком скрипта, который выполняется до передачи значения параметру NewName.

В блоке скрипта автоматическая переменная $_ представляет каждый объект файла, передаваемый команде по конвейеру. Команда использует обращение через точку (.), чтобы получить значение свойства Name каждого объекта файла. Оператор Replace заменяет расширение ".txt" каждого файла расширением ".log".

Поскольку оператор Replace работает с регулярными выражениями, точка в начале строки "txt" интерпретируется как любой символ. Чтобы точка интерпретировалась исключительно как точка (.), используется escape-символ — обратная косая черта (\). Обратная косая черта не требуется в записи ".log", потому что это срока, а не регулярное выражение.






См. также




Содержание