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