Поделиться через


Rename-Item

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

Синтаксис

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

Описание

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

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

Примеры

Пример 1. Переименование файла

Эта команда переименовывает файл daily_file.txt в monday_file.txt.

Rename-Item -Path "C:\logfiles\daily_file.txt" -NewName "monday_file.txt"

Пример 2. Переименование и перемещение элемента

Нельзя использовать Rename-Item для переименования и перемещения элемента. В частности, нельзя указать путь для значения параметра NewName, если путь не идентичен пути, указанному в параметре пути. В противном случае разрешено только новое имя.

Rename-Item -Path "project.txt" -NewName "D:\archive\old-project.txt"

Rename-Item : can't 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], PS>  Move-Item -Path "project.txt" -De
stination "D:\archive\old-project.txt"

В этом примере выполняется попытка переименовать файл project.txt в текущем каталоге в old-project.txt в каталоге D:\Archive. Результатом является ошибка, показанная в выходных данных.

Вместо этого используйте командлет Move-Item.

Пример 3: Переименование раздела реестра

В этом примере раздел реестра переименовывается из Рекламы в Маркетинг. По завершении команды ключ переименовывается, но записи реестра в ключе остаются без изменений.

Rename-Item -Path "HKLM:\Software\MyCompany\Advertising" -NewName "Marketing"

Пример 4. Переименование нескольких файлов

В этом примере все файлы *.txt в текущем каталоге переименовывается в *.log.

Get-ChildItem *.txt

Directory: C:\temp\files

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----        10/3/2019   7:47 AM           2918 Friday.TXT
-a----        10/3/2019   7:46 AM           2918 Monday.Txt
-a----        10/3/2019   7:47 AM           2918 Wednesday.txt

Get-ChildItem *.txt | Rename-Item -NewName { $_.Name -replace '.txt','.log' }
Get-ChildItem *.log

Directory: C:\temp\files

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----        10/3/2019   7:47 AM           2918 Friday.log
-a----        10/3/2019   7:46 AM           2918 Monday.log
-a----        10/3/2019   7:47 AM           2918 Wednesday.log

Командлет Get-ChildItem находит все файлы в текущей папке с расширением файла .txt, а затем отправляет их в Rename-Item. Значение NewName — это блок скрипта, который выполняется перед отправкой значения в параметр NewName.

В блоке скрипта $_ автоматическая переменная представляет каждый файловый объект по мере выполнения команды через конвейер. Блок скрипта использует оператор -replace для замены расширения каждого файла на .log. Обратите внимание, что сопоставление с использованием оператора -replace не учитывает регистр.

Параметры

-Confirm

Запрашивает подтверждение перед запуском командлета.

Тип:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Credential

Заметка

Этот параметр не поддерживается поставщиками, установленными с помощью PowerShell. Чтобы олицетворить другого пользователя или повысить свои учетные данные при выполнении этого командлета, используйте Invoke-Command.

Тип:PSCredential
Position:Named
Default value:Current user
Обязательно:False
Принять входные данные конвейера:True
Принять подстановочные знаки:False

-Force

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

Даже при использовании параметра Force командлет не способен обойти ограничения безопасности.

Тип:SwitchParameter
Position:Named
Default value:False
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-LiteralPath

Указывает путь к одному или нескольким расположениям. Значение LiteralPath используется точно так же, как оно введено. Символы не интерпретируются как подстановочные знаки. Если путь содержит escape-символы, заключите его в одинарные кавычки. Одинарные кавычки указывают PowerShell не интерпретировать какие-либо символы как экранирующие последовательности.

Дополнительные сведения см. в about_Quoting_Rules.

Тип:String
Aliases:PSPath, LP
Position:Named
Default value:None
Обязательно:True
Принять входные данные конвейера:True
Принять подстановочные знаки:False

-NewName

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

Не удается использовать подстановочные знаки в значении параметра NewName. Чтобы указать имя для нескольких файлов, используйте оператор -replace в регулярном выражении. Дополнительные сведения о операторе -replace см. в about_Comparison_Operators.

Тип:String
Position:1
Default value:None
Обязательно:True
Принять входные данные конвейера:True
Принять подстановочные знаки:False

-PassThru

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

Тип:SwitchParameter
Position:Named
Default value:False
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Path

Указывает путь к элементу для переименования.

Тип:String
Position:0
Default value:None
Обязательно:True
Принять входные данные конвейера:True
Принять подстановочные знаки:False

-WhatIf

Показывает, что произойдет, если командлет будет выполнен. Командлет не выполняется.

Тип:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

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

String

Можно передать строку, содержащую путь к этому командлету.

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

None

По умолчанию этот командлет не возвращает выходные данные.

PSObject

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

Примечания

PowerShell включает следующие псевдонимы для Rename-Item:

  • Все платформы:
    • ren
    • rni

Rename-Item предназначен для работы с данными, предоставляемыми любым поставщиком. Чтобы вывести список поставщиков, доступных в сеансе, введите Get-PSProvider. Дополнительные сведения см. в документе about_Providers.