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 |
Входные данные
Можно передать строку, содержащую путь к этому командлету.
Выходные данные
None
По умолчанию этот командлет не возвращает выходные данные.
При использовании параметра PassThru этот командлет возвращает объект, представляющий переименованный элемент.
Примечания
PowerShell включает следующие псевдонимы для Rename-Item
:
- Все платформы:
ren
rni
Rename-Item
предназначен для работы с данными, предоставляемыми любым поставщиком. Чтобы вывести список поставщиков, доступных в сеансе, введите Get-PSProvider
. Дополнительные сведения см. в документе about_Providers.
Связанные ссылки
PowerShell