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


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

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

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

В этом примере раздел реестра переименовывается с Advertising на 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

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

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.