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


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-ChildItemRecurse командлета значение параметра 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

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

String

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

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

None or an object representing the moved item

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

Примечания

  • Этот командлет перемещает файлы между дисками, которые поддерживаются тем же поставщиком, но каталоги будут перемещаться только на одном диске.
  • Move-Item Поскольку команда перемещает свойства, содержимое и дочерние элементы элемента, все перемещения по умолчанию являются рекурсивными.
  • Этот командлет предназначен для работы с данными, предоставляемыми любым поставщиком. Чтобы вывести список поставщиков, доступных в данном сеансе, введите командлет Get-PSProvider. Дополнительные сведения см. в разделе about_Providers.