Copy-Item
Zkopíruje položku z jednoho umístění do jiného.
Syntaxe
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>]
Description
Rutina Copy-Item
zkopíruje položku z jednoho umístění do jiného umístění ve stejném oboru názvů.
Může například zkopírovat soubor do složky, ale nemůže zkopírovat soubor na jednotku certifikátu.
Tato rutina neodstraní zkopírované položky nebo je neodstraní. Konkrétní položky, které může rutina kopírovat, závisí na poskytovateli PowerShellu, který položku zveřejňuje. Může například kopírovat soubory a adresáře v jednotce systému souborů a klíče registru a položky v jednotce registru.
Tato rutina může kopírovat a přejmenovat položky ve stejném příkazu. Pokud chcete položku přejmenovat, zadejte nový název do hodnoty parametru Destination. Pokud chcete položku přejmenovat a nekopírovat, použijte rutinu Rename-Item
.
Příklady
Příklad 1: Zkopírování souboru do zadaného adresáře
Tento příklad zkopíruje soubor mar1604.log.txt
do adresáře C:\Presentation
. Původní soubor se neodstraní.
Copy-Item "C:\Wabash\Logfiles\mar1604.log.txt" -Destination "C:\Presentation"
Příklad 2: Kopírování obsahu adresáře do existujícího adresáře
Tento příklad zkopíruje obsah adresáře C:\Logfiles
do existujícího adresáře C:\Drawings
. Adresář Logfiles
se nekopíruje.
Pokud adresář Logfiles
obsahuje soubory v podadresářích, zkopírují se tyto podadresáře s nedotčenými stromy souborů. Ve výchozím nastavení je parametr Container nastaven na hodnotu True, která zachovává adresářovou strukturu.
Copy-Item -Path "C:\Logfiles\*" -Destination "C:\Drawings" -Recurse
Poznámka
Pokud potřebujete do kopie zahrnout adresář
Copy-Item -Path "C:\Logfiles" -Destination "C:\Drawings" -Recurse
Příklad 3: Kopírování obsahu adresáře do nového adresáře
Tento příklad zkopíruje obsah zdrojového adresáře C:\Logfiles
a vytvoří nový cílový adresář. Nový cílový adresář, \Logs
se vytvoří v C:\Drawings
.
Pokud chcete zahrnout název zdrojového adresáře, zkopírujte ho do existujícího cílového adresáře, jak je znázorněno v Příklad 2. Nebo pojmenujte nový cílový adresář se stejným názvem jako zdrojový adresář.
Copy-Item -Path "C:\Logfiles" -Destination "C:\Drawings\Logs" -Recurse
Poznámka
Pokud Cesta zahrnuje \*
, veškerý obsah souboru adresáře bez stromů podadresáře se zkopíruje do nového cílového adresáře. Například:
Copy-Item -Path "C:\Logfiles\*" -Destination "C:\Drawings\Logs" -Recurse
Příklad 4: Zkopírování souboru do zadaného adresáře a přejmenování souboru
Tento příklad používá rutinu Copy-Item
ke zkopírování skriptu Get-Widget.ps1
z adresáře \\Server01\Share
do adresáře \\Server12\ScriptArchive
. V rámci operace kopírování příkaz změní název položky z Get-Widget.ps1
na Get-Widget.ps1.txt
, aby se mohl připojit k e-mailovým zprávům.
Copy-Item "\\Server01\Share\Get-Widget.ps1" -Destination "\\Server12\ScriptArchive\Get-Widget.ps1.txt"
Příklad 5: Zkopírování souboru do vzdáleného počítače
Relace se vytvoří na vzdáleném počítači s názvem Server01 s přihlašovacími údaji Contoso\User01
a uloží výsledky do proměnné s názvem $Session
.
Rutina Copy-Item
zkopíruje test.log
ze složky D:\Folder001
do složky C:\Folder001_Copy
ve vzdáleném počítači pomocí informací o relaci uložených v proměnné $Session
. Původní soubor se neodstraní.
$Session = New-PSSession -ComputerName "Server01" -Credential "Contoso\User01"
Copy-Item "D:\Folder001\test.log" -Destination "C:\Folder001_Copy\" -ToSession $Session
Příklad 6: Zkopírování celého obsahu složky do vzdáleného počítače
Relace se vytvoří na vzdáleném počítači s názvem Server01 s přihlašovacími údaji Contoso\User01
a uloží výsledky do proměnné s názvem $Session
.
Rutina Copy-Item
zkopíruje celý obsah ze složky D:\Folder002
do adresáře C:\Folder002_Copy
ve vzdáleném počítači pomocí informací o relaci uložených v proměnné $Session
. Podsložky se zkopírují se stromy souborů beze změny.
$Session = New-PSSession -ComputerName "Server02" -Credential "Contoso\User01"
Copy-Item "D:\Folder002\" -Destination "C:\Folder002_Copy\" -ToSession $Session
Příklad 7: Rekurzivně zkopírujte celý obsah složky do vzdáleného počítače.
Relace se vytvoří na vzdáleném počítači s názvem Server01 s přihlašovacími údaji Contoso\User01
a uloží výsledky do proměnné s názvem $Session
.
Rutina Copy-Item
zkopíruje celý obsah ze složky D:\Folder003
do adresáře C:\Folder003_Copy
ve vzdáleném počítači pomocí informací o relaci uložených v proměnné $Session
. Podsložky se zkopírují se stromy souborů beze změny. Protože se používá parametr Recurse, operace vytvoří složku Folder003_Copy
, pokud ještě neexistuje.
$Session = New-PSSession -ComputerName "Server04" -Credential "Contoso\User01"
Copy-Item "D:\Folder003\" -Destination "C:\Folder003_Copy\" -ToSession $Session -Recurse
Příklad 8: Zkopírování souboru do vzdáleného počítače a následné přejmenování souboru
Relace se vytvoří na vzdáleném počítači s názvem Server01 s přihlašovacími údaji Contoso\User01
a uloží výsledky do proměnné s názvem $Session
.
Rutina Copy-Item
zkopíruje scriptingexample.ps1
ze složky D:\Folder004
do složky C:\Folder004_Copy
ve vzdáleném počítači pomocí informací o relaci uložených v proměnné $Session
. V rámci operace kopírování příkaz změní název položky z scriptingexample.ps1
na scriptingexample_copy.ps1
, aby se mohl připojit k e-mailovým zprávům. Původní soubor se neodstraní.
$Session = New-PSSession -ComputerName "Server04" -Credential "Contoso\User01"
Copy-Item "D:\Folder004\scriptingexample.ps1" -Destination "C:\Folder004_Copy\scriptingexample_copy.ps1" -ToSession $Session
Příklad 9: Zkopírování vzdáleného souboru do místního počítače
Relace se vytvoří na vzdáleném počítači s názvem Server01 s přihlašovacími údaji Contoso\User01
a uloží výsledky do proměnné s názvem $Session
.
Rutina Copy-Item
zkopíruje test.log
ze vzdáleného C:\MyRemoteData\
do místní složky D:\MyLocalData
pomocí informací o relaci uložených v proměnné $Session
. Původní soubor se neodstraní.
$Session = New-PSSession -ComputerName "Server01" -Credential "Contoso\User01"
Copy-Item "C:\MyRemoteData\test.log" -Destination "D:\MyLocalData\" -FromSession $Session
Příklad 10: Zkopírování celého obsahu vzdálené složky do místního počítače
Relace se vytvoří na vzdáleném počítači s názvem Server01 s přihlašovacími údaji Contoso\User01
a uloží výsledky do proměnné s názvem $Session
.
Rutina Copy-Item
zkopíruje celý obsah ze vzdálené složky C:\MyRemoteData\scripts
do místní složky D:\MyLocalData
pomocí informací o relaci uložených v proměnné $Session
. Pokud složka skriptů obsahuje soubory v podsložkách, zkopírují se tyto podsložky se stromy souborů beze změny.
$Session = New-PSSession -ComputerName "Server01" -Credential "Contoso\User01"
Copy-Item "C:\MyRemoteData\scripts" -Destination "D:\MyLocalData\" -FromSession $Session
Příklad 11: Rekurzivně zkopírujte celý obsah vzdálené složky do místního počítače.
Relace se vytvoří na vzdáleném počítači s názvem Server01 s přihlašovacími údaji Contoso\User01
a uloží výsledky do proměnné s názvem $Session
.
Rutina Copy-Item
zkopíruje celý obsah ze vzdálené složky C:\MyRemoteData\scripts
do místní složky D:\MyLocalData\scripts
pomocí informací o relaci uložených v proměnné $Session
. Protože se používá parametr Recurse, operace vytvoří složku skriptů, pokud ještě neexistuje. Pokud složka skriptů obsahuje soubory v podsložkách, zkopírují se tyto podsložky se stromy souborů beze změny.
$Session = New-PSSession -ComputerName "Server01" -Credential "Contoso\User01"
Copy-Item "C:\MyRemoteData\scripts" -Destination "D:\MyLocalData\scripts" -FromSession $Session -Recurse
Parametry
-Confirm
Před spuštěním rutiny vás vyzve k potvrzení.
Typ: | SwitchParameter |
Aliasy: | cf |
Position: | Named |
Default value: | False |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-Container
Označuje, že tato rutina zachovává objekty kontejneru během operace kopírování. Ve výchozím nastavení je parametr Container nastaven na hodnotu True.
Typ: | SwitchParameter |
Position: | Named |
Default value: | True |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-Credential
Poznámka
Tento parametr nejsou podporovány žádnými poskytovateli nainstalovanými v PowerShellu. Pokud chcete zosobnit jiného uživatele nebo zvýšit oprávnění při spuštění této rutiny, použijte Invoke-Command.
Typ: | PSCredential |
Position: | Named |
Default value: | Current user |
Vyžadováno: | False |
Přijmout vstup kanálu: | True |
Přijmout zástupné znaky: | False |
-Destination
Určuje cestu k novému umístění. Výchozí hodnota je aktuální adresář.
Chcete-li přejmenovat zkopírovanou položku, zadejte nový název v hodnotě parametru Destination.
Typ: | String |
Position: | 1 |
Default value: | Current directory |
Vyžadováno: | False |
Přijmout vstup kanálu: | True |
Přijmout zástupné znaky: | False |
-Exclude
Určuje, jako pole řetězců, položku nebo položky, které tato rutina vylučuje v operaci. Hodnota tohoto parametru kvalifikuje parametr Path. Zadejte prvek cesty nebo vzor, například *.txt
. Jsou povoleny zástupné znaky. Parametr Exclude je efektivní pouze v případě, že příkaz obsahuje obsah položky, například C:\Windows\*
, kde zástupný znak určuje obsah adresáře C:\Windows
.
Typ: | String[] |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | True |
-Filter
Určuje filtr pro kvalifikaci parametru Path. Zprostředkovatel FileSystem je jediným nainstalovaným poskytovatelem PowerShellu, který podporuje použití filtrů. Syntaxi jazyka filtru FileSystem najdete v about_Wildcards. Filtry jsou efektivnější než jiné parametry, protože je poskytovatel použije, když rutina získá objekty místo toho, aby objekty po jejich načtení vyfiltrovala PowerShell.
Typ: | String |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | True |
-Force
Označuje, že tato rutina kopíruje položky, které se jinak nedají změnit, například kopírování přes soubor nebo alias jen pro čtení.
Typ: | SwitchParameter |
Position: | Named |
Default value: | False |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-FromSession
Určuje PSSession objekt, ze kterého se kopíruje vzdálený soubor. Pokud použijete tento parametr, Cesta a LiteralPath parametry odkazují na místní cestu na vzdáleném počítači.
Typ: | PSSession |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-Include
Určuje, jako pole řetězců, položku nebo položky, které tato rutina zahrnuje v operaci. Hodnota tohoto parametru kvalifikuje parametr Path. Zadejte prvek cesty nebo vzor, například "*.txt"
. Jsou povoleny zástupné znaky. Parametr Include je efektivní pouze v případě, že příkaz obsahuje obsah položky, například C:\Windows\*
, kde zástupný znak určuje obsah adresáře C:\Windows
.
Typ: | String[] |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | True |
-LiteralPath
Určuje cestu k jednomu nebo více umístěním. Hodnota LiteralPath se používá přesně tak, jak je zadána. Žádné znaky nejsou interpretovány jako zástupné znaky. Pokud cesta obsahuje řídicí znaky, uzavřete ji do jednoduchých uvozovek. Jednoduché uvozovky říkají PowerShellu, aby nepřekládaly žádné znaky jako řídicí sekvence.
Další informace najdete v tématu about_Quoting_Rules.
Typ: | String[] |
Aliasy: | PSPath |
Position: | Named |
Default value: | None |
Vyžadováno: | True |
Přijmout vstup kanálu: | True |
Přijmout zástupné znaky: | False |
-PassThru
Vrátí objekt, který představuje položku, se kterou pracujete. Ve výchozím nastavení tato rutina negeneruje žádný výstup.
Typ: | SwitchParameter |
Position: | Named |
Default value: | False |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-Path
Určuje cestu k položkám, které se mají zkopírovat, jako pole řetězců. Jsou povoleny zástupné znaky.
Typ: | String[] |
Position: | 0 |
Default value: | None |
Vyžadováno: | True |
Přijmout vstup kanálu: | True |
Přijmout zástupné znaky: | True |
-Recurse
Označuje, že tato rutina provede rekurzivní kopírování.
Typ: | SwitchParameter |
Position: | Named |
Default value: | False |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-ToSession
Určuje PSSession objekt, do kterého se kopíruje vzdálený soubor. Při použití tohoto parametru odkazuje parametr Destination na místní cestu na vzdáleném počítači.
Typ: | PSSession |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-UseTransaction
Zahrnuje příkaz v aktivní transakci. Tento parametr je platný pouze v případě, že probíhá transakce. Další informace najdete v tématu about_Transactions.
Typ: | SwitchParameter |
Aliasy: | usetx |
Position: | Named |
Default value: | False |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-WhatIf
Ukazuje, co se stane, když se rutina spustí. Rutina se nespustí.
Typ: | SwitchParameter |
Aliasy: | wi |
Position: | Named |
Default value: | False |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
Vstupy
Řetězec, který obsahuje cestu k této rutině, můžete převést.
Výstupy
None or an object representing the copied item
Pokud použijete parametr PassThru, vrátí tato rutina objekt, který představuje zkopírovanou položku. Jinak tato rutina negeneruje žádný výstup.
Poznámky
Tato rutina je navržená tak, aby fungovala s daty vystavenými jakýmkoli poskytovatelem. Pokud chcete zobrazit seznam poskytovatelů dostupných v relaci, zadejte Get-PSProvider
. Další informace naleznete v tématu about_Providers.