Move-Item
Перемещает элемент из одного расположения в другое.
Синтаксис
Move-Item
[-Path] <String[]>
[[-Destination] <String>]
[-Force]
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[-PassThru]
[-Credential <PSCredential>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Move-Item
-LiteralPath <String[]>
[[-Destination] <String>]
[-Force]
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[-PassThru]
[-Credential <PSCredential>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Описание
Командлет Move-Item
перемещает элемент, включая его свойства, содержимое и дочерние элементы из одного расположения в другое расположение. Расположения должны поддерживаться тем же поставщиком.
Например, он может переместить файл или подкаталог из одного каталога в другой или переместить подраздел реестра из одного ключа в другой. При перемещении элемента он добавляется в новое расположение и удаляется из исходного расположения.
Примеры
Пример 1. Перемещение файла в другой каталог и его переименование
Эта команда перемещает файл Test.txt
из диска C:
в каталог E:\Temp
и переименовывает его из test.txt
в tst.txt
.
Move-Item -Path C:\test.txt -Destination E:\Temp\tst.txt
Пример 2. Перемещение каталога и его содержимого в другой каталог
Эта команда перемещает каталог C:\Temp
и его содержимое в каталог C:\Logs
.
Каталог Temp
и все его подкаталоги и файлы, а затем отображаются в каталоге Logs
.
Move-Item -Path C:\Temp -Destination C:\Logs
Пример 3. Перемещение всех файлов указанного расширения из текущего каталога в другой каталог
Эта команда перемещает все текстовые файлы (*.txt
) в текущем каталоге (представленные точкой (.
)) в каталог C:\Logs
.
Move-Item -Path .\*.txt -Destination C:\Logs
Пример 4. Рекурсивно переместите все файлы указанного расширения из текущего каталога в другой каталог.
Эта команда перемещает все текстовые файлы из текущего каталога и всех подкаталогов, рекурсивно, в каталог C:\TextFiles
.
Get-ChildItem -Path ".\*.txt" -Recurse | Move-Item -Destination "C:\TextFiles"
Команда использует командлет Get-ChildItem
для получения всех дочерних элементов в текущем каталоге (представленных точкой (.
)) и его подкаталогами с расширением имени файла *.txt
. Он использует параметр Recurse для рекурсивного извлечения и параметра Include, чтобы ограничить извлечение до *.txt
файлов.
Оператор конвейера (|
) отправляет результаты этой команды в Move-Item
, которая перемещает текстовые файлы в каталог TextFiles
.
Если файлы, которые необходимо переместить в C:\Textfiles
имеют то же имя, Move-Item
отображает ошибку и продолжается, но перемещает только один файл с каждым именем в C:\Textfiles
. Остальные файлы остаются в исходных каталогах.
Если каталог Textfiles
(или любой другой элемент пути назначения) не существует, команда завершается ошибкой. Отсутствующий каталог не создается для вас, даже если используется параметр Force.
Move-Item
перемещает первый элемент в файл с именем Textfiles
, а затем отображает ошибку, объясняющую, что файл уже существует.
Кроме того, по умолчанию Get-ChildItem
не перемещает скрытые файлы. Чтобы переместить скрытые файлы, используйте параметр force с Get-ChildItem
.
Заметка
В Windows PowerShell 2.0 при использовании параметра Recurse командлета Get-ChildItem
значение параметра пути должно быть контейнером. Используйте параметр Include, чтобы указать фильтр расширения имени файла *.txt
(Get-ChildItem -Path .\* -Include *.txt -Recurse | Move-Item -Destination C:\TextFiles
).
Пример 5. Перемещение разделов реестра и значений в другой раздел
Эта команда перемещает разделы реестра и значения в разделе реестра MyCompany
в HKLM\Software
в раздел MyNewCompany
. Подстановочный знак (*
) указывает, что содержимое ключа MyCompany
должно быть перемещено, а не сам ключ. В этой команде опущены необязательные имена параметров пути и назначения.
Move-Item "HKLM:\software\mycompany\*" "HKLM:\software\mynewcompany"
Пример 6. Перемещение каталога и его содержимого в подкаталог указанного каталога
Эта команда перемещает каталог Logs[Sept`06]
(и его содержимое) в каталог Logs[2006]
.
Move-Item -LiteralPath 'Logs[Sept`06]' -Destination 'Logs[2006]'
Параметр LiteralPath используется вместо пути, так как исходное имя каталога содержит символы левой скобки и правой скобки ([
и ]
). Путь также заключен в одинарные кавычки ('
), чтобы символ backtick (`
) не был неправильно интерпретирован.
Параметр назначения также должен быть заключен в одинарные кавычки, так как он включает скобки, которые могут быть неправильно интерпретированы.
Параметры
-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 |
-Destination
Указывает путь к расположению, в котором перемещаются элементы. По умолчанию используется текущий каталог. Подстановочные знаки не разрешены.
Чтобы переименовать перемещаемый элемент, укажите новое имя в значении параметра назначения.
Тип: | String |
Position: | 1 |
Default value: | Current directory |
Обязательно: | False |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | True |
-Exclude
Указывает как строковый массив, элемент или элементы, которые этот командлет исключает в операции. Значение этого параметра квалифифициирует параметр Path. Введите элемент пути или шаблон, например *.txt
. Разрешены подстановочные знаки. Параметр Исключить действует только в том случае, если команда включает содержимое элемента, например C:\Windows\*
, где подстановочный знак указывает содержимое каталога C:\Windows
.
Тип: | String[] |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | True |
-Filter
Указывает фильтр для квалификации параметра Path. Поставщик файловой системы является единственным установленным поставщиком PowerShell, поддерживающим использование фильтров. Синтаксис для языка фильтрации файловой системы можно найти в about_Wildcards. Фильтры более эффективны, чем другие параметры, так как поставщик применяет их, когда командлет получает объекты, а не фильтрует объекты После их получения.
Тип: | String |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | True |
-Force
Принудительно выполняется команда без запроса подтверждения пользователя. Реализация зависит от поставщика к поставщику. Дополнительные сведения см. в разделе about_Providers.
Тип: | SwitchParameter |
Position: | Named |
Default value: | False |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-Include
Указывает, как строковый массив, элемент или элементы, которые этот командлет включает в операцию. Значение этого параметра квалифифициирует параметр Path. Введите элемент пути или шаблон, например *.txt
. Разрешены подстановочные знаки. Параметр Include действует только в том случае, если команда включает содержимое элемента, например C:\Windows\*
, где подстановочный знак указывает содержимое каталога C:\Windows
.
Тип: | String[] |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | True |
-LiteralPath
Указывает путь к одному или нескольким расположениям. Значение LiteralPath используется точно так же, как оно введите. Символы не интерпретируются как подстановочные знаки. Если путь содержит escape-символы, заключите его в одинарные кавычки ('
). Одинарные кавычки говорят PowerShell не интерпретировать какие-либо символы как escape-последовательности.
Дополнительные сведения см. в about_Quoting_Rules.
Тип: | String[] |
Aliases: | PSPath, LP |
Position: | Named |
Default value: | None |
Обязательно: | True |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-PassThru
Возвращает объект, представляющий перемещаемый элемент. По умолчанию этот командлет не создает выходные данные.
Тип: | SwitchParameter |
Position: | Named |
Default value: | False |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-Path
Указывает путь к текущему расположению элементов. По умолчанию используется текущий каталог. Разрешены подстановочные знаки.
Тип: | String[] |
Position: | 0 |
Default value: | Current directory |
Обязательно: | True |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | True |
-WhatIf
Показывает, что произойдет, если командлет выполняется. Командлет не выполняется.
Тип: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
Входные данные
Можно передать строку, содержащую путь к этому командлету.
Выходные данные
None
По умолчанию этот командлет не возвращает выходные данные.
При использовании параметра PassThru этот командлет возвращает объект, представляющий перемещаемый элемент.
Примечания
PowerShell включает следующие псевдонимы для Move-Item
:
Все платформы:
mi
move
Виндоус:
mv
Этот командлет перемещает файлы между дисками, поддерживаемыми тем же поставщиком, но перемещает каталоги только в одном диске.
Так как команда
Move-Item
перемещает свойства, содержимое и дочерние элементы элемента, все перемещения по умолчанию рекурсивны.Этот командлет предназначен для работы с данными, предоставляемыми любым поставщиком. Чтобы вывести список поставщиков, доступных в сеансе, введите
Get-PSProvider
. Дополнительные сведения см. в разделе about_Providers.