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

Синтаксис

Move-Item [-LiteralPath] <string[]> [[-Destination] <string>] [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Force] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>]

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

Описание

Командлет Move-Item cmdlet перемещает элемент, включая его свойства, содержимое и дочерние элементы, из одного местоположения в другое. Оба заданных местоположения должны поддерживаться одним и тем же поставщиком. Например, можно переместить файл или вложенный каталог из одного каталога в другой либо переместить подраздел реестра из одного раздела в другой. При перемещении элемента он удаляется в исходном местоположении и создается в новом.

Параметры

-Credential <PSCredential>

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

Введите имя пользователя, например "User01" или "Domain01\User01", или введите объект PSCredential, например объект, создаваемый командлетом Get-Credential. При вводе имени пользователя система запросит пароль.

Этот параметр не поддерживается ни одним из установленных с Windows PowerShell поставщиком.

Обязательно?

false

Позиция?

named

Значение по умолчанию

Принимать входные данные из конвейера?

true (ByPropertyName)

Принимать подстановочные знаки?

false

-Destination <string>

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

Чтобы переименовать перемещаемый элемент, задайте новое имя в параметре Destination.

Обязательно?

false

Позиция?

2

Значение по умолчанию

Принимать входные данные из конвейера?

true (ByPropertyName)

Принимать подстановочные знаки?

false

-Exclude <string[]>

Исключает указанные элементы. Значение этого параметра определяет значение параметра Path. Введите элемент пути или шаблон, например "*.txt". Подстановочные знаки разрешены.

Обязательно?

false

Позиция?

named

Значение по умолчанию

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

-Filter <string>

Задает фильтр с использованием формата или языка поставщика. Значение этого параметра определяет значение параметра Path. Синтаксис фильтра, в том числе использование подстановочных знаков, зависит от поставщика. Фильтры эффективнее других параметров, потому что поставщик применяет их при извлечении объектов (вместо использования Windows PowerShell для фильтрации извлеченных объектов).

Обязательно?

false

Позиция?

named

Значение по умолчанию

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

-Force

Позволяет командлету переместить элемент, заменяющий существующий элемент, доступный только для чтения. Реализация варьируется от поставщика к поставщику. Дополнительные сведения см. в разделе About_Providers. Даже при использовании параметра Force командлет не может переопределить ограничения безопасности.

Обязательно?

false

Позиция?

named

Значение по умолчанию

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

-Include <string[]>

Перемещает только указанные элементы. Значение этого параметра определяет значение параметра Path. Введите элемент пути или шаблон, например "*.txt". Подстановочные знаки разрешены.

Обязательно?

false

Позиция?

named

Значение по умолчанию

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

-LiteralPath <string[]>

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

Обязательно?

true

Позиция?

1

Значение по умолчанию

Принимать входные данные из конвейера?

true (ByPropertyName)

Принимать подстановочные знаки?

false

-PassThru

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

Обязательно?

false

Позиция?

named

Значение по умолчанию

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

-Path <string[]>

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

Обязательно?

true

Позиция?

1

Значение по умолчанию

Принимать входные данные из конвейера?

true (ByValue, ByPropertyName)

Принимать подстановочные знаки?

false

-Confirm

Запрашивает подтверждение перед выполнением команды.

Обязательно?

false

Позиция?

named

Значение по умолчанию

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

-WhatIf

Описывает, что произойдет при выполнении команды, без ее фактического выполнения.

Обязательно?

false

Позиция?

named

Значение по умолчанию

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

-UseTransaction

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

Обязательно?

false

Позиция?

named

Значение по умолчанию

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

<CommonParameters>

Данный командлет поддерживает общие параметры -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer и -OutVariable. Дополнительные сведения см. в разделе about_Commonparameters.

Ввод и вывод

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

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

System.String

Строку, содержащую путь, можно передать командлету Move-Item по конвейеру.

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

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

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

Примечания

Командлет Move-Item перемещает файлы между дисками, которые поддерживаются одним поставщиком, однако каталоги могут быть перемещены только в пределах одного диска.

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

Командлет Move-Item также можно вызывать с помощью псевдонимов: "move", "mv" и "mi". Дополнительные сведения см. в разделе About_Aliases.

Командлет Move-Item предназначен для работы с данными, предоставляемыми любым поставщиком. Чтобы получить список поставщиков, доступных в текущем сеансе, введите команду "Get-PsProvider". Дополнительные сведения см. в разделе About_Providers.

Пример 1

C:\PS>move-item -path C:\test.txt -destination E:\Temp\tst.txt

Описание
-----------
Эта команда перемещает файл Test.txt с диска C: в каталог E:\Temp и переименовывает его из "test.txt" в "tst.txt".






Пример 2

C:\PS>move-item -path C:\Temp -destination C:\Logs

Описание
-----------
Эта команда перемещает каталог C:\Temp и все его содержимое в каталог C:\Logs. После выполнения данной команды каталог Temp, а также все его вложенные каталоги и файлы, будет находиться в каталоге Logs.






Пример 3

C:\PS>move-item -path .\*.txt -destination C:\Logs

Описание
-----------
Эта команда перемещает все текстовые файлы (*.txt) из текущего каталога (обозначенного точкой (.)) в каталог C:\Logs.






Пример 4

C:\PS>get-childitem -path . -recurse -include *.txt | move-item -destination C:\TextFiles

Описание
-----------
Эта команда рекурсивно перемещает все текстовые файлы из текущего каталога и вложенных в него каталогов в каталог C:\TextFiles. 

Эта команда с помощью командлета Get-ChildItem извлекает все дочерние элементы с расширением "*.txt" из текущего каталога (обозначенного точкой (.)) и вложенных в него каталогов. В данной команде для обеспечения рекурсивности извлечения используется параметр Recurse, а параметр Include позволяет извлечь только TXT-файлы.

Оператор конвейера (|) пересылает результаты данной команды командлету Move-Item, который перемещает текстовые файлы в папку TextFiles.

Если имена перемещаемых в каталог "C:\Textfiles" файлов совпадают, командлет Move-Item отображает сообщение об ошибке и продолжает работу; при этом в каталог "C:\Textfiles" перемещается только один файл с данным именем. Другие файлы остаются в своих исходных каталогах.

Если каталог Textfiles (или любой другой элемент пути назначения) не существует, команда завершается с ошибкой. Отсутствующий каталог не будет создан даже в случае использования параметра Force. Командлет Move-Item перемещает первый элемент в файл "Textfiles" и отображает сообщение об ошибке, указывающее, что файл уже существует. 

Кроме того, по умолчанию командлет Get-ChildItem не перемещает скрытые файлы. Для перемещения скрытых файлов в командлете Get-ChildItem необходимо указать параметр Force.






Пример 5

C:\PS>move-item hklm:\software\mycompany\* hklm:\software\mynewcompany

Описание
-----------
Эта команда перемещает разделы и параметры из раздела реестра HKLM\Software MyCompany в раздел MyNewCompany. Подстановочный знак (*) означает, что следует переместить содержимое раздела MyCompany, а не сам раздел. В этой команде имена дополнительных параметров Path и Destination опущены.






Пример 6

C:\PS>move-item -literalpath 'Logs[Sept`06]' -destination 'Logs[2006]'

Описание
-----------
Эта команда перемещает папку Logs[Sept`06] и все ее содержимое в каталог Logs[2006]. 

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

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






См. также