Поделиться через


Move-Item

Перемещает элемент из одного расположения в другое.

Синтаксис

Move-Item
    [-Path] <String[]>
    [[-Destination] <String>]
    [-Force]
    [-Filter <String>]
    [-Include <String[]>]
    [-Exclude <String[]>]
    [-PassThru]
    [-Credential <PSCredential>]
    [-WhatIf]
    [-Confirm]
    [-UseTransaction]
    [<CommonParameters>]
Move-Item
    -LiteralPath <String[]>
    [[-Destination] <String>]
    [-Force]
    [-Filter <String>]
    [-Include <String[]>]
    [-Exclude <String[]>]
    [-PassThru]
    [-Credential <PSCredential>]
    [-WhatIf]
    [-Confirm]
    [-UseTransaction]
    [<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 командлет для получения всех дочерних элементов в текущем каталоге (представленном точкой [.]) и его подкаталогах с расширением имени файла ".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-ChildItemRecurse командлета значение параметра Path должно быть контейнером. Используйте параметр Include , чтобы указать фильтр расширения имени файла .txt (Get-ChildItem -Path .\* -Include *.txt -Recurse | Move-Item -Destination C:\TextFiles).

Get-ChildItem -Path ".\*.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].

Вместо Path используется параметр LiteralPath, так как исходное имя каталога содержит символы левой и правой скобки ("[" и "]"). Чтобы знак открывающей кавычки (`), интерпретировался как обычный символ, строку пути необходимо заключить в одиночные кавычки (' ').

Для параметра Destination не требуется литеральный путь, так как переменная Destination также должна быть заключена в одинарные кавычки, так как она содержит квадратные скобки, которые могут быть неправильно интерпретированы.

Move-Item -LiteralPath 'Logs[Sept`06]' -Destination 'Logs[2006]'

Параметры

-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». Можно использовать подстановочные знаки.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-Filter

Указывает фильтр в формате или языке поставщика. Значение этого параметра определяет параметр Path.

Синтаксис фильтра, включая использование подстановочных знаков, зависит от поставщика. Фильтры более эффективны, чем другие параметры, так как поставщик применяет их, когда командлет получает объекты, а не фильтрует объекты 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». Можно использовать подстановочные знаки.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-LiteralPath

Указывает путь к текущему расположению элементов. В отличие от параметра Path, значение LiteralPath используется именно так, как оно введено. Никакие символы не интерпретируются как знаки подстановки. Если путь содержит escape-символы, заключите его в одинарные кавычки. Одинарные кавычки предписывают PowerShell не интерпретировать какие-либо символы как escape-последовательности.

Type:String[]
Aliases:PSPath
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

-UseTransaction

Включает команду в активную транзакцию. Этот параметр доступен только при выполнении транзакции. Дополнительные сведения см. в разделе about_Transactions.

Type:SwitchParameter
Aliases:usetx
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

Показывает, что произойдет при запуске командлета. Командлет не выполняется.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Входные данные

String

В этот командлет можно передать по конвейеру строку, содержащую путь.

Выходные данные

None or an object representing the moved item.

При использовании параметра PassThru этот командлет создает объект, представляющий перемещенный элемент. В противном случае командлет не формирует никаких выходных данных.

Примечания

Этот командлет перемещает файлы между дисками, поддерживаемыми тем же поставщиком, но каталоги будут перемещаться только на одном диске.

Move-Item Поскольку команда перемещает свойства, содержимое и дочерние элементы элемента, все перемещения по умолчанию являются рекурсивными.

Этот командлет предназначен для работы с данными, предоставляемыми любым поставщиком. Чтобы вывести список поставщиков, доступных в данном сеансе, введите командлет Get-PSProvider. Дополнительные сведения см. в разделе about_Providers.