Copy-Item
Копирует элемент из одного расположения в другое.
Синтаксис
Copy-Item
[-Path] <String[]>
[[-Destination] <String>]
[-Container]
[-Force]
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[-Recurse]
[-PassThru]
[-Credential <PSCredential>]
[-WhatIf]
[-Confirm]
[-UseTransaction]
[-FromSession <PSSession>]
[-ToSession <PSSession>]
[<CommonParameters>]
Copy-Item
-LiteralPath <String[]>
[[-Destination] <String>]
[-Container]
[-Force]
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[-Recurse]
[-PassThru]
[-Credential <PSCredential>]
[-WhatIf]
[-Confirm]
[-UseTransaction]
[-FromSession <PSSession>]
[-ToSession <PSSession>]
[<CommonParameters>]
Описание
Командлет Copy-Item
копирует элемент из одного расположения в другое расположение в том же пространстве имен.
Например, он может скопировать файл в папку, но он не может скопировать файл на диск сертификата.
Этот командлет не вырезает или не удаляет скопированные элементы. Определенные элементы, которые командлет может копировать, зависят от поставщика PowerShell, предоставляющего элемент. Например, он может копировать файлы и каталоги на диске файловой системы и разделах реестра и записях на диске реестра.
Этот командлет может копировать и переименовать элементы в той же команде. Чтобы переименовать элемент, введите новое имя в значение параметра Назначения. Чтобы переименовать элемент и не скопировать его, используйте командлет Rename-Item
.
Примеры
Пример 1. Копирование файла в указанный каталог
В этом примере файл mar1604.log.txt
копируется в каталог C:\Presentation
. Исходный файл не удаляется.
Copy-Item "C:\Wabash\Logfiles\mar1604.log.txt" -Destination "C:\Presentation"
Пример 2. Копирование содержимого каталога в существующий каталог
В этом примере содержимое каталога C:\Logfiles
копируется в существующий каталог C:\Drawings
. Каталог Logfiles
не копируется.
Если каталог Logfiles
содержит файлы в подкаталогах, эти вложенные каталоги копируются с нетронутыми деревьями файлов. По умолчанию параметр контейнера
Copy-Item -Path "C:\Logfiles\*" -Destination "C:\Drawings" -Recurse
Заметка
Если необходимо включить каталог
Copy-Item -Path "C:\Logfiles" -Destination "C:\Drawings" -Recurse
Пример 3. Копирование содержимого каталога в новый каталог
В этом примере копируется содержимое исходного каталога C:\Logfiles
и создается новый целевой каталог. Новый каталог назначения \Logs
создается в C:\Drawings
.
Чтобы включить имя исходного каталога, скопируйте его в существующий целевой каталог, как показано в примере 2. Или назовите новый целевой каталог тем же, что и исходный каталог.
Copy-Item -Path "C:\Logfiles" -Destination "C:\Drawings\Logs" -Recurse
Заметка
Если пути включает \*
, все содержимое файла каталога без подкаталогов копируется в новый целевой каталог. Например:
Copy-Item -Path "C:\Logfiles\*" -Destination "C:\Drawings\Logs" -Recurse
Пример 4. Копирование файла в указанный каталог и переименование файла
В этом примере используется командлет Copy-Item
для копирования скрипта Get-Widget.ps1
из каталога \\Server01\Share
в каталог \\Server12\ScriptArchive
. В рамках операции копирования команда изменяет имя элемента с Get-Widget.ps1
на Get-Widget.ps1.txt
, чтобы оно было присоединено к сообщениям электронной почты.
Copy-Item "\\Server01\Share\Get-Widget.ps1" -Destination "\\Server12\ScriptArchive\Get-Widget.ps1.txt"
Пример 5. Копирование файла на удаленный компьютер
Сеанс создается на удаленном компьютере с именем Server01 с учетными данными Contoso\User01
и сохраняет результаты в переменной с именем $Session
.
Командлет Copy-Item
копирует test.log
из папки D:\Folder001
в папку C:\Folder001_Copy
на удаленном компьютере с помощью сведений о сеансе, хранящихся в переменной $Session
. Исходный файл не удаляется.
$Session = New-PSSession -ComputerName "Server01" -Credential "Contoso\User01"
Copy-Item "D:\Folder001\test.log" -Destination "C:\Folder001_Copy\" -ToSession $Session
Пример 6. Копирование всего содержимого папки на удаленный компьютер
Сеанс создается на удаленном компьютере с именем Server01 с учетными данными Contoso\User01
и сохраняет результаты в переменной с именем $Session
.
Командлет Copy-Item
копирует все содержимое из папки D:\Folder002
в каталог C:\Folder002_Copy
на удаленном компьютере с помощью сведений о сеансе, хранящихся в переменной $Session
. Вложенные папки копируются с нетронутыми деревьями файлов.
$Session = New-PSSession -ComputerName "Server02" -Credential "Contoso\User01"
Copy-Item "D:\Folder002\" -Destination "C:\Folder002_Copy\" -ToSession $Session
Пример 7. Рекурсивно скопируйте все содержимое папки на удаленный компьютер.
Сеанс создается на удаленном компьютере с именем Server01 с учетными данными Contoso\User01
и сохраняет результаты в переменной с именем $Session
.
Командлет Copy-Item
копирует все содержимое из папки D:\Folder003
в каталог C:\Folder003_Copy
на удаленном компьютере с помощью сведений о сеансе, хранящихся в переменной $Session
. Вложенные папки копируются с нетронутыми деревьями файлов. Так как используется параметр Recurse, операция создает папку Folder003_Copy
, если она еще не существует.
$Session = New-PSSession -ComputerName "Server04" -Credential "Contoso\User01"
Copy-Item "D:\Folder003\" -Destination "C:\Folder003_Copy\" -ToSession $Session -Recurse
Пример 8. Копирование файла на удаленный компьютер и переименование файла
Сеанс создается на удаленном компьютере с именем Server01 с учетными данными Contoso\User01
и сохраняет результаты в переменной с именем $Session
.
Командлет Copy-Item
копирует scriptingexample.ps1
из папки D:\Folder004
в папку C:\Folder004_Copy
на удаленном компьютере с помощью сведений о сеансе, хранящихся в переменной $Session
. В рамках операции копирования команда изменяет имя элемента с scriptingexample.ps1
на scriptingexample_copy.ps1
, чтобы оно было присоединено к сообщениям электронной почты. Исходный файл не удаляется.
$Session = New-PSSession -ComputerName "Server04" -Credential "Contoso\User01"
Copy-Item "D:\Folder004\scriptingexample.ps1" -Destination "C:\Folder004_Copy\scriptingexample_copy.ps1" -ToSession $Session
Пример 9. Копирование удаленного файла на локальный компьютер
Сеанс создается на удаленном компьютере с именем Server01 с учетными данными Contoso\User01
и сохраняет результаты в переменной с именем $Session
.
Командлет Copy-Item
копирует test.log
из удаленного C:\MyRemoteData\
в локальную папку D:\MyLocalData
с помощью сведений о сеансе, хранящихся в переменной $Session
. Исходный файл не удаляется.
$Session = New-PSSession -ComputerName "Server01" -Credential "Contoso\User01"
Copy-Item "C:\MyRemoteData\test.log" -Destination "D:\MyLocalData\" -FromSession $Session
Пример 10. Копирование всего содержимого удаленной папки на локальный компьютер
Сеанс создается на удаленном компьютере с именем Server01 с учетными данными Contoso\User01
и сохраняет результаты в переменной с именем $Session
.
Командлет Copy-Item
копирует все содержимое из удаленной папки C:\MyRemoteData\scripts
в локальную папку D:\MyLocalData
с помощью сведений о сеансе, хранящихся в переменной $Session
. Если папка скриптов содержит файлы в вложенных папках, эти вложенные папки копируются с нетронутыми деревьями файлов.
$Session = New-PSSession -ComputerName "Server01" -Credential "Contoso\User01"
Copy-Item "C:\MyRemoteData\scripts" -Destination "D:\MyLocalData\" -FromSession $Session
Пример 11. Рекурсивно скопируйте все содержимое удаленной папки на локальный компьютер.
Сеанс создается на удаленном компьютере с именем Server01 с учетными данными Contoso\User01
и сохраняет результаты в переменной с именем $Session
.
Командлет Copy-Item
копирует все содержимое из удаленной папки C:\MyRemoteData\scripts
в локальную папку D:\MyLocalData\scripts
с помощью сведений о сеансе, хранящихся в переменной $Session
. Так как используется параметр Recurse, операция создает папку скриптов, если она еще не существует. Если папка скриптов содержит файлы в вложенных папках, эти вложенные папки копируются с нетронутыми деревьями файлов.
$Session = New-PSSession -ComputerName "Server01" -Credential "Contoso\User01"
Copy-Item "C:\MyRemoteData\scripts" -Destination "D:\MyLocalData\scripts" -FromSession $Session -Recurse
Параметры
-Confirm
Запрашивает подтверждение перед запуском командлета.
Тип: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-Container
Указывает, что этот командлет сохраняет объекты контейнера во время операции копирования. По умолчанию параметр контейнера
Тип: | SwitchParameter |
Position: | Named |
Default value: | True |
Обязательно: | 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 |
Принять подстановочные знаки: | False |
-Exclude
Указывает как строковый массив, элемент или элементы, которые этот командлет исключает в операции. Значение этого параметра квалифифициирует параметр Path. Введите элемент пути или шаблон, например *.txt
. Разрешены подстановочные знаки. Параметр Исключить действует только в том случае, если команда включает содержимое элемента, например C:\Windows\*
, где подстановочный знак указывает содержимое каталога C:\Windows
.
Тип: | String[] |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | True |
-Filter
Указывает фильтр для квалификации параметра Path. Поставщик файловой системы
Тип: | String |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | True |
-Force
Указывает, что этот командлет копирует элементы, которые не могут быть изменены, например копирование по файлу только для чтения или псевдониму.
Тип: | SwitchParameter |
Position: | Named |
Default value: | False |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-FromSession
Указывает объект PSSession, из которого копируется удаленный файл. При использовании этого параметра параметры path и LiteralPath ссылаются на локальный путь на удаленном компьютере.
Тип: | PSSession |
Position: | Named |
Default value: | None |
Обязательно: | 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 |
Position: | Named |
Default value: | None |
Обязательно: | True |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-PassThru
Возвращает объект, представляющий элемент, с которым вы работаете. По умолчанию этот командлет не создает выходные данные.
Тип: | SwitchParameter |
Position: | Named |
Default value: | False |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-Path
Указывает в виде строкового массива путь к элементам для копирования. Разрешены подстановочные знаки.
Тип: | String[] |
Position: | 0 |
Default value: | None |
Обязательно: | True |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | True |
-Recurse
Указывает, что этот командлет выполняет рекурсивную копию.
Тип: | SwitchParameter |
Position: | Named |
Default value: | False |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-ToSession
Указывает объект PSSession, в который копируется удаленный файл. При использовании этого параметра параметр назначения ссылается на локальный путь на удаленном компьютере.
Тип: | PSSession |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-UseTransaction
Включает команду в активную транзакцию. Этот параметр действителен только в том случае, если выполняется транзакция. Дополнительные сведения см. в about_Transactions.
Тип: | SwitchParameter |
Aliases: | usetx |
Position: | Named |
Default value: | False |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-WhatIf
Показывает, что произойдет, если командлет выполняется. Командлет не выполняется.
Тип: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
Входные данные
Можно передать строку, содержащую путь к этому командлету.
Выходные данные
None or an object representing the copied item
При использовании параметра PassThru этот командлет возвращает объект, представляющий скопированный элемент. В противном случае этот командлет не создает выходные данные.
Примечания
Этот командлет предназначен для работы с данными, предоставляемыми любым поставщиком. Чтобы вывести список поставщиков, доступных в сеансе, введите Get-PSProvider
. Дополнительные сведения см. в разделе about_Providers.