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


Move-Item

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

Синтаксис

Path (по умолчанию)

Move-Item
    [-Path] <String[]>
    [[-Destination] <String>]
    [-Force]
    [-Filter <String>]
    [-Include <String[]>]
    [-Exclude <String[]>]
    [-PassThru]
    [-Credential <PSCredential>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

LiteralPath

Move-Item
    [[-Destination] <String>]
    -LiteralPath <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 с .

Замечание

В 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

Запрашивает подтверждение перед запуском cmdlet.

Свойства параметра

Тип:SwitchParameter
Default value:False
Поддерживаются подстановочные знаки:False
DontShow:False
Aliases:cf

Наборы параметров

(All)
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-Credential

Замечание

Этот параметр не поддерживается поставщиками, установленными с помощью PowerShell. Чтобы олицетворить другого пользователя или повысить свои учетные данные при выполнении этого командлета, используйте Invoke-Command.

Свойства параметра

Тип:PSCredential
Default value:Current user
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

(All)
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:True
Значение из оставшихся аргументов:False

-Destination

Указывает путь к расположению, в котором перемещаются элементы. По умолчанию используется текущий каталог. Подстановочные знаки не разрешены.

Чтобы переименовать перемещаемый элемент, укажите новое имя в значении параметра назначения .

Свойства параметра

Тип:String
Default value:Current directory
Поддерживаются подстановочные знаки:True
DontShow:False

Наборы параметров

(All)
Position:1
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:True
Значение из оставшихся аргументов:False

-Exclude

Указывает как строковый массив, элемент или элементы, которые этот командлет исключает в операции. Значение этого параметра квалифифициирует параметр Path. Введите элемент пути или шаблон, например *.txt. Разрешено использование подстановочных символов. Параметр Исключить действует только в том случае, если команда включает содержимое элемента, например C:\Windows\*, где подстановочный знак указывает содержимое каталога C:\Windows.

Свойства параметра

Тип:

String[]

Default value:None
Поддерживаются подстановочные знаки:True
DontShow:False

Наборы параметров

(All)
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-Filter

Указывает фильтр для квалификации параметра Path. Поставщик файловой системы является единственным установленным поставщиком PowerShell, который поддерживает использование фильтров. Синтаксис языка фильтрации файловой системы вы можете найти в about_Wildcards. Фильтры более эффективны, чем другие параметры, так как поставщик применяет их, когда командлет получает объекты, а не чтобы PowerShell фильтровал объекты после их получения.

Свойства параметра

Тип:String
Default value:None
Поддерживаются подстановочные знаки:True
DontShow:False

Наборы параметров

(All)
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-Force

Принудительно выполняется команда без запроса подтверждения пользователя. Реализация зависит от поставщика к поставщику. Дополнительные сведения см. в разделе о поставщиках.

Свойства параметра

Тип:SwitchParameter
Default value:False
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

(All)
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-Include

Указывает, как строковый массив, элемент или элементы, которые этот командлет включает в операцию. Значение этого параметра квалифифициирует параметр Path. Введите элемент пути или шаблон, например *.txt. Разрешено использование подстановочных символов. Параметр Include действует только в том случае, если команда включает содержимое элемента, например C:\Windows\*, где подстановочный знак указывает содержимое каталога C:\Windows.

Свойства параметра

Тип:

String[]

Default value:None
Поддерживаются подстановочные знаки:True
DontShow:False

Наборы параметров

(All)
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-LiteralPath

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

Дополнительную информацию см. в разделе about_Quoting_Rules.

Свойства параметра

Тип:

String[]

Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False
Aliases:PSPath, LP

Наборы параметров

LiteralPath
Position:Named
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:True
Значение из оставшихся аргументов:False

-PassThru

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

Свойства параметра

Тип:SwitchParameter
Default value:False
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

(All)
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-Path

Указывает путь к текущему расположению элементов. По умолчанию используется текущий каталог. Разрешено использование подстановочных символов.

Свойства параметра

Тип:

String[]

Default value:Current directory
Поддерживаются подстановочные знаки:True
DontShow:False

Наборы параметров

Path
Position:0
Обязательно:True
Значение из конвейера:True
Значение из конвейера по имени свойства:True
Значение из оставшихся аргументов:False

-WhatIf

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

Свойства параметра

Тип:SwitchParameter
Default value:False
Поддерживаются подстановочные знаки:False
DontShow:False
Aliases:wi

Наборы параметров

(All)
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

CommonParameters

Этот командлет поддерживает общие параметры: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction и -WarningVariable. Дополнительные сведения см. в разделе about_CommonParameters.

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

String

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

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

None

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

PSObject

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

Примечания

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

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

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

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

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

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