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


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

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

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

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

Тип: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

Задает новое имя элемента. Введите только имя без пути. Если ввести путь, который отличается от пути, указанного в параметре Path , 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.