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.txtmonday_file.txtв .

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

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

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

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.txtD:\Archive в каталог. Результатом является сообщение об ошибке в выходных данных.

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

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

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

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

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

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

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

Запрос подтверждения перед выполнением командлета.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Credential

Примечание.

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

Type:PSCredential
Position:Named
Default value:Current user
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Force

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

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

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-LiteralPath

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

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

Type:String
Aliases:PSPath, LP
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-NewName

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

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

Type:String
Position:1
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-PassThru

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

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Path

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

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-WhatIf

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

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

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

String

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

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

None

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

PSObject

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

Примечания

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

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

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