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


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. Переименование раздела реестра

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

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 не интерпретировать какие-либо символы как escape-последовательности.

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

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

-NewName

Задает новое имя элемента. Введите только имя, а не путь и имя. Если ввести путь, который отличается от пути, указанного в параметре пути , создает ошибку. Чтобы переименовать и переместить элемент, используйте 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 or an object that represents the renamed item.

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

Примечания

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