Sdílet prostřednictvím


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ář , odeberte zcesty . Například:

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

String

Ř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.