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


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

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

String

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

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

None

По умолчанию этот командлет не возвращает выходные данные.

PSObject

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

Примечания

PowerShell включает следующие псевдонимы для Move-Item:

  • Все платформы:

    • mi
    • move
  • Виндоус:

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

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

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