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 при использовании параметра Get-ChildItem
Recurse командлета значение параметра Path должно быть контейнером. Используйте параметр Include , чтобы указать *.txt
фильтр расширения имени файла (Get-ChildItem -Path .\* -Include *.txt -Recurse | Move-Item -Destination C:\TextFiles
).
Пример 5. Перемещение разделов и значений реестра в другой раздел
Эта команда перемещает разделы реестра и значения в MyCompany
разделе реестра в HKLM\Software
MyNewCompany
в раздел . Подстановочный знак (*
) указывает, что содержимое MyCompany
ключа должно быть перемещено, а не сам ключ. В этой команде необязательные имена параметров Path и Destination опущены.
Move-Item "HKLM:\software\mycompany\*" "HKLM:\software\mynewcompany"
Пример 6. Перемещение каталога и его содержимого в подкаталог указанного каталога
Эта команда перемещает Logs[Sept`06]
каталог (и его содержимое) в Logs[2006]
каталог .
Move-Item -LiteralPath 'Logs[Sept`06]' -Destination 'Logs[2006]'
Вместо Path используется параметр LiteralPath, так как исходное имя каталога содержит символы левой и правой скобки ([
и ]
). Путь также заключен в одинарные кавычки ('
), чтобы символ обратного выражения (`
) не истолковывался неправильно.
Параметр Destination также должен быть заключен в одинарные кавычки, так как он содержит квадратные скобки, которые могут быть неправильно интерпретированы.
Параметры
-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 |
-Destination
Указывает путь к новому расположению элементов. Значением по умолчанию является текущий каталог. Подстановочные знаки запрещены.
Чтобы переименовать перемещаемый элемент, укажите новое имя в значении параметра Destination .
Type: | String |
Position: | 1 |
Default value: | Current directory |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | True |
-Exclude
Указывает в качестве массива строк элемент или элементы, которые этот командлет исключает в операции. Значение этого параметра определяет параметр Path. Введите элемент пути или шаблон, например *.txt
. Можно использовать подстановочные знаки. Параметр Exclude действует только в том случае, если команда включает содержимое элемента, например C:\Windows\*
, где подстановочный знак указывает содержимое C:\Windows
каталога.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-Filter
Указывает фильтр для указания параметра Path . Поставщик FileSystem — единственный установленный поставщик PowerShell, который поддерживает использование фильтров. Синтаксис языка фильтра FileSystem можно найти в about_Wildcards. Фильтры более эффективны, чем другие параметры, так как поставщик применяет их, когда командлет получает объекты, а не фильтрует объекты PowerShell после их извлечения.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-Force
Принудительное выполнение команды без запроса на подтверждение пользователем. Применение этого параметра зависит от конкретного поставщика. Дополнительные сведения см. в разделе about_Providers.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Include
Указывает в качестве массива строк элемент или элементы, которые этот командлет включает в операцию. Значение этого параметра определяет параметр Path. Введите элемент пути или шаблон, например *.txt
. Можно использовать подстановочные знаки. Параметр Include действует только в том случае, если команда включает содержимое элемента, например C:\Windows\*
, где подстановочный знак указывает содержимое C:\Windows
каталога.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-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 |
-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: | Current directory |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | True |
-WhatIf
Показывает, что произойдет при запуске командлета. Командлет не выполняется.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Входные данные
В этот командлет можно передать по конвейеру строку, содержащую путь.
Выходные данные
None
По умолчанию этот командлет не возвращает выходные данные.
При использовании параметра PassThru этот командлет возвращает объект, представляющий перемещенный элемент.
Примечания
PowerShell включает следующие псевдонимы для Move-Item
:
Для всех платформ.
mi
move
Windows:
mv
Этот командлет перемещает файлы между дисками, поддерживаемыми тем же поставщиком, но каталоги будут перемещаться только на одном диске.
Move-Item
Поскольку команда перемещает свойства, содержимое и дочерние элементы элемента, все перемещения по умолчанию являются рекурсивными.Этот командлет предназначен для работы с данными, предоставляемыми любым поставщиком. Чтобы вывести список поставщиков, доступных в данном сеансе, введите командлет
Get-PSProvider
. Дополнительные сведения см. в разделе about_Providers.