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 не требует литерального пути, так как переменная 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, поддерживающий использование фильтров. Синтаксис языка фильтрации файловой системы можно найти в 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 or an object representing the moved item
При использовании параметра PassThru этот командлет создает объект, представляющий перемещенный элемент. В противном случае командлет не формирует никаких выходных данных.
Примечания
- Этот командлет перемещает файлы между дисками, которые поддерживаются тем же поставщиком, но каталоги будут перемещаться только на одном диске.
Move-Item
Поскольку команда перемещает свойства, содержимое и дочерние элементы элемента, все перемещения по умолчанию являются рекурсивными.- Этот командлет предназначен для работы с данными, предоставляемыми любым поставщиком.
Чтобы вывести список поставщиков, доступных в данном сеансе, введите командлет
Get-PSProvider
. Дополнительные сведения см. в разделе about_Providers.