Copy-Item

Elem másolása egyik helyről a másikra.

Syntax

Copy-Item
    [-Path] <String[]>
    [[-Destination] <String>]
    [-Container]
    [-Force]
    [-Filter <String>]
    [-Include <String[]>]
    [-Exclude <String[]>]
    [-Recurse]
    [-PassThru]
    [-Credential <PSCredential>]
    [-WhatIf]
    [-Confirm]
    [-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]
    [-FromSession <PSSession>]
    [-ToSession <PSSession>]
    [<CommonParameters>]
Copy-Item
    [-Path] <string[]>
    [[-Destination] <string>]
    [-Container]
    [-Force]
    [-Filter <string>]
    [-Include <string[]>]
    [-Exclude <string[]>]
    [-Recurse]
    [-PassThru]
    [-Credential <pscredential>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]
Copy-Item
    [[-Destination] <string>]
    -LiteralPath <string[]>
    [-Container]
    [-Force]
    [-Filter <string>]
    [-Include <string[]>]
    [-Exclude <string[]>]
    [-Recurse]
    [-PassThru]
    [-Credential <pscredential>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

Description

A Copy-Item parancsmag egy elemet másol egy helyről egy másik helyre ugyanabban a névtérben. Például átmásolhat egy fájlt egy mappába, de nem tud fájlokat másolni egy tanúsítványmeghajtóra.

Ez a parancsmag nem vágja ki vagy törli a másolt elemeket. A parancsmag által másolható elemek az elemet elérhetővé tevő PowerShell-szolgáltatótól függenek. Másolhat például fájlokat és könyvtárakat egy fájlrendszer-meghajtón, valamint a beállításkulcsokat és bejegyzéseket a beállításjegyzék-meghajtón.

Ez a parancsmag ugyanabban a parancsban másolhatja és átnevezheti az elemeket. Egy elem átnevezéséhez írja be az új nevet a Cél paraméter értékébe. Ha át szeretne nevezni egy elemet, és nem másolja, használja a Rename-Item parancsmagot.

Példák

1. példa: Fájl másolása a megadott könyvtárba

Ez a példa a fájlt a mar1604.log.txtC:\Presentation könyvtárba másolja. Az eredeti fájl nem törlődik.

Copy-Item "C:\Wabash\Logfiles\mar1604.log.txt" -Destination "C:\Presentation"

2. példa: Könyvtártartalom másolása meglévő könyvtárba

Ez a példa a könyvtár tartalmát C:\Logfiles a meglévő C:\Drawings könyvtárba másolja. A Logfiles könyvtár nem lesz másolva.

Ha a Logfiles könyvtárban vannak alkönyvtárakban lévő fájlok, a program ezeket az alkönyvtárakat érintetlen fájlfákkal másolja. A Tároló paraméter alapértelmezés szerint True értékre van állítva, amely megőrzi a címtárstruktúrát.

Copy-Item -Path "C:\Logfiles\*" -Destination "C:\Drawings" -Recurse

Feljegyzés

Ha az elérési út C:\Drawings nem létezik, a parancsmag az összes fájlt egyetlen fájlba C:\Drawingsmásolja a Logfiles mappából.

3. példa: Könyvtár és tartalom másolása új könyvtárba

Ez a példa átmásolja a C:\Logfiles forráskönyvtár tartalmát, és létrehoz egy új célkönyvtárat. Az új célkönyvtár \Logs a következőben C:\Drawingsjön létre: .

A forráskönyvtár nevének hozzáadásához másolja át egy meglévő célkönyvtárba a 2. példában látható módon. Vagy nevezze el az új célkönyvtárat úgy, hogy ugyanaz legyen, mint a forráskönyvtár.

Copy-Item -Path "C:\Logfiles" -Destination "C:\Drawings\Logs" -Recurse

Feljegyzés

Ha az elérési út tartalmazza \*, a könyvtár összes fájltartalma, beleértve az alkönyvtárfákat is, az új célkönyvtárba lesz átmásolva. Példa:

Copy-Item -Path "C:\Logfiles\*" -Destination "C:\Drawings\Logs" -Recurse

4. példa: Fájl másolása a megadott könyvtárba, majd a fájl átnevezése

Ez a példa a Copy-Item parancsmaggal másolja a Get-Widget.ps1 szkriptet a \\Server01\Share könyvtárból a \\Server12\ScriptArchive könyvtárba. A másolási művelet részeként a parancs az elem nevét Get-Widget.ps1Get-Widget.ps1.txta következőre módosítja, hogy az biztonságosan csatolható legyen az e-mailekhez.

Copy-Item "\\Server01\Share\Get-Widget.ps1" -Destination "\\Server12\ScriptArchive\Get-Widget.ps1.txt"

5. példa: Fájl másolása távoli számítógépre

A rendszer létrehoz egy munkamenetet a Server01 nevű távoli számítógépen a hitelesítő adatokkalContoso\User01, és az eredményeket a nevesített $Sessionváltozóban tárolja.

A parancsmag a D:\Folder001 változóban $Session tárolt munkamenet-információk alapján a mappából C:\Folder001_Copy a távoli számítógép mappájába másoltest.log.Copy-Item Az eredeti fájl nem törlődik.

$Session = New-PSSession -ComputerName "Server01" -Credential "Contoso\User01"
Copy-Item "D:\Folder001\test.log" -Destination "C:\Folder001_Copy\" -ToSession $Session

6. példa: Mappa másolása távoli számítógépre

A rendszer létrehoz egy munkamenetet a Server01 nevű távoli számítógépen a hitelesítő adatokkalContoso\User01, és az eredményeket a nevesített $Sessionváltozóban tárolja.

A Copy-Item parancsmag átmásolja a D:\Folder002 mappát a C:\Folder002_Copy távoli számítógép könyvtárába a változóban $Session tárolt munkamenet-információk alapján. Az almappák és fájlok nem másolhatók a Recurse kapcsoló használata nélkül. A művelet létrehozza a Folder002_Copy mappát, ha még nem létezik.

$Session = New-PSSession -ComputerName "Server02" -Credential "Contoso\User01"
Copy-Item "D:\Folder002\" -Destination "C:\Folder002_Copy\" -ToSession $Session

7. példa: Egy mappa teljes tartalmának rekurzív másolása távoli számítógépre

A rendszer létrehoz egy munkamenetet a Server01 nevű távoli számítógépen a hitelesítő adatokkalContoso\User01, és az eredményeket a nevesített $Sessionváltozóban tárolja.

A Copy-Item parancsmag a teljes tartalmat átmásolja a D:\Folder003 mappából a C:\Folder003_Copy távoli számítógép könyvtárába a változóban $Session tárolt munkamenet-információk használatával. Az almappák a fájlfáikkal együtt vannak másolva. A művelet létrehozza a Folder003_Copy mappát, ha még nem létezik.

$Session = New-PSSession -ComputerName "Server04" -Credential "Contoso\User01"
Copy-Item "D:\Folder003\" -Destination "C:\Folder003_Copy\" -ToSession $Session -Recurse

8. példa: Fájl másolása távoli számítógépre, majd a fájl átnevezése

A rendszer létrehoz egy munkamenetet a Server01 nevű távoli számítógépen a hitelesítő adatokkalContoso\User01, és az eredményeket a nevesített $Sessionváltozóban tárolja.

A parancsmag a D:\Folder004 változóban $Session tárolt munkamenet-információk alapján a mappából C:\Folder004_Copy a távoli számítógép mappájába másolscriptingexample.ps1.Copy-Item Az eredeti fájl nem törlődik.

$Session = New-PSSession -ComputerName "Server04" -Credential "Contoso\User01"
Copy-Item "D:\Folder004\scriptingexample.ps1" -Destination "C:\Folder004_Copy\scriptingexample_copy.ps1" -ToSession $Session

9. példa: Távoli fájl másolása a helyi számítógépre

A rendszer létrehoz egy munkamenetet a Server01 nevű távoli számítógépen a hitelesítő adatokkalContoso\User01, és az eredményeket a nevesített $Sessionváltozóban tárolja.

A Copy-Item parancsmag a távoli C:\MyRemoteData\ mappából a helyi D:\MyLocalData mappába másolja test.log a változóban $Session tárolt munkamenet-információkat. Az eredeti fájl nem törlődik.

$Session = New-PSSession -ComputerName "Server01" -Credential "Contoso\User01"
Copy-Item "C:\MyRemoteData\test.log" -Destination "D:\MyLocalData\" -FromSession $Session

10. példa: Távoli mappa teljes tartalmának másolása a helyi számítógépre

A rendszer létrehoz egy munkamenetet a Server01 nevű távoli számítógépen a hitelesítő adatokkalContoso\User01, és az eredményeket a nevesített $Sessionváltozóban tárolja.

A Copy-Item parancsmag a távoli C:\MyRemoteData\scripts mappából a helyi D:\MyLocalData mappába másolja a teljes tartalmat a változóban $Session tárolt munkamenet-információk alapján. Ha a szkriptek mappájában vannak almappákban lévő fájlok, a program az almappákat érintetlen fájlfákkal másolja ki.

$Session = New-PSSession -ComputerName "Server01" -Credential "Contoso\User01"
Copy-Item "C:\MyRemoteData\scripts" -Destination "D:\MyLocalData\" -FromSession $Session

11. példa: Távoli mappa teljes tartalmának rekurzív másolása a helyi számítógépre

A rendszer létrehoz egy munkamenetet a Server01 nevű távoli számítógépen a hitelesítő adatokkalContoso\User01, és az eredményeket a nevesített $Sessionváltozóban tárolja.

A Copy-Item parancsmag a távoli C:\MyRemoteData\scripts mappából a helyi D:\MyLocalData\scripts mappába másolja a teljes tartalmat a változóban $Session tárolt munkamenet-információk alapján. Mivel a Recurse paramétert használja, a művelet létrehozza a szkriptek mappát, ha még nem létezik. Ha a szkriptek mappájában vannak almappákban lévő fájlok, a program az almappákat érintetlen fájlfákkal másolja ki.

$Session = New-PSSession -ComputerName "Server01" -Credential "Contoso\User01"
Copy-Item "C:\MyRemoteData\scripts" -Destination "D:\MyLocalData\scripts" -FromSession $Session -Recurse

12. példa: Fájlok rekurzív másolása egy mappafáról az aktuális mappába

Ez a példa bemutatja, hogyan másolhat fájlokat többszintű mappastruktúrából egyetlen egysíkú mappába. Az első három parancs a meglévő mappastruktúrát és két fájl tartalmát jeleníti meg, mindkettő neve file3.txt.

PS C:\temp\test> (Get-ChildItem C:\temp\tree -Recurse).FullName
C:\temp\tree\subfolder
C:\temp\tree\file1.txt
C:\temp\tree\file2.txt
C:\temp\tree\file3.txt
C:\temp\tree\subfolder\file3.txt
C:\temp\tree\subfolder\file4.txt
C:\temp\tree\subfolder\file5.txt

PS C:\temp\test> Get-Content C:\temp\tree\file3.txt
This is file3.txt in the root folder

PS C:\temp\test> Get-Content C:\temp\tree\subfolder\file3.txt
This is file3.txt in the subfolder

PS C:\temp\test> Copy-Item -Path C:\temp\tree -Filter *.txt -Recurse -Container:$false
PS C:\temp\test> (Get-ChildItem . -Recurse).FullName
C:\temp\test\subfolder
C:\temp\test\file1.txt
C:\temp\test\file2.txt
C:\temp\test\file3.txt
C:\temp\test\file4.txt
C:\temp\test\file5.txt

PS C:\temp\test> Get-Content .\file3.txt
This is file3.txt in the subfolder

A Copy-Item parancsmag tárolóparaméterea következőre $falsevan állítva: . Ez azt eredményezi, hogy a forrásmappa tartalma átmásolódik, de nem őrzi meg a mappaszerkezetet. Figyelje meg, hogy az azonos nevű fájlok felülíródnak a célmappában.

13. példa: Elemek rekurzió nélküli másolása szűrők használatával

Ez a példa az Include paraméterrel a másolandó elemek kiválasztásához használható eredményeket mutatja be.

Ez a példa a másolandó fájlokat tartalmazó alábbi mappastruktúrát használja:

  • D:\temp\tree\example.ps1
  • D:\temp\tree\example.txt
  • D:\temp\tree\examples\
  • D:\temp\tree\examples\example_1.txt
  • D:\temp\tree\examples\example_2.txt
  • D:\temp\tree\examples\subfolder\
  • D:\temp\tree\examples\subfolder\test.txt

Ebben a példában Copy-Item az Elérési út és a Belefoglalás paraméterekhez helyettesítő karaktert használunk. Ha helyettesítő karaktert ad meg az Elérési út paraméterhez, az biztosítja, hogy a program feldolgozza az összes olyan fájlt és mappát, amely egyezik D:\temp\tree\*. Az Include paraméter szűri a feldolgozandó elemek listáját, és csak azokra az elérési utakra korlátozza a műveletet, amelyek kezdődnek ex.

PS D:\temp\test\out> Copy-Item -Path D:\temp\tree\* -Include ex*
PS D:\temp\test\out> (Get-ChildItem -Recurse).FullName
D:\temp\out\examples
D:\temp\out\example.ps1
D:\temp\out\example.txt

Az Include paraméter a mappa tartalmára D:\temp\tree lesz alkalmazva az összes egyező ex*elem másolásához. Figyelje meg, hogy a rendszer ismétlődés nélkül másolja a D:\temp\out\examples mappát, de egyik tartalmát sem másolja.

14. példa: Rekurziós elemek másolása szűrők használatával

Ez a példa az Include paraméterrel a másolandó elemek kiválasztásához használható eredményeket mutatja be.

Ez a példa a másolandó fájlokat tartalmazó alábbi mappastruktúrát használja:

  • D:\temp\tree\example.ps1
  • D:\temp\tree\example.txt
  • D:\temp\tree\examples\
  • D:\temp\tree\examples\example_1.txt
  • D:\temp\tree\examples\example_2.txt
  • D:\temp\tree\examples\subfolder\
  • D:\temp\tree\examples\subfolder\test.txt

Ebben a példában Copy-Item az Elérési út és a Belefoglalás paraméterekhez helyettesítő karaktert használunk. Ha helyettesítő karaktert ad meg az Elérési út paraméterhez, az biztosítja, hogy az összes fájl és mappa megfelelően legyen feldolgozva D:\temp\tree\*. Az Include paraméter szűri a feldolgozandó elemek listáját, és csak azokra az elérési utakra korlátozza a műveletet, amelyek kezdődnek ex.

D:\temp\out> Copy-Item -Path D:\temp\tree\* -Include ex* -Recurse
D:\temp\out> (Get-ChildItem -Recurse).FullName
D:\temp\out\examples
D:\temp\out\example.ps1
D:\temp\out\example.txt
D:\temp\out\examples\subfolder
D:\temp\out\examples\example_1.txt
D:\temp\out\examples\example_2.txt
D:\temp\out\examples\subfolder\test.txt

Az Include paraméter a mappa tartalmára D:\temp\tree lesz alkalmazva az összes egyező ex*elem másolásához. Figyelje meg, hogy a rekurzióval a D:\temp\out\examples mappa az összes fájllal és almappával együtt lesz másolva. A másolat olyan fájlokat tartalmaz, amelyek nem felelnek meg a belefoglalási szűrőnek. Használata Copy-Itemesetén a szűrők csak az Elérési út paraméter által megadott legfelső szintre vonatkoznak. Ezután a rendszer a rekurziót alkalmazza az egyező elemekre.

Feljegyzés

A Kizárás paraméter viselkedése megegyezik a példában ismertetettekkel, azzal a kivételsel, hogy a műveletet csak azokra az útvonalakra korlátozza, amelyek nem felelnek meg a mintának.

15. példa: A fájlok rekurzív másolásának korlátozása helyettesítő karakterek által megadott elérési útról

Ez a példa bemutatja, hogyan korlátozhatja a helyettesítő karaktereknek megfelelő elérési útról egy másik mappába rekurzív módon másolt fájlokat. A 13. példa azt mutatja, hogy mivel az Include paraméter csak a helyettesítő karaktereket megjelölő elérési utakra szűr, a Belefoglalás paraméter nem használható a mappából rekurzívan másolt fájlok korlátozására. Ehelyett megkeresheti a másolni kívánt elemeket, és átadhatja Get-ChildItem azokat a programnak Copy-Item.

Ez a példa a másolandó fájlokat tartalmazó alábbi mappastruktúrát használja:

  • D:\temp\tree\example.ps1
  • D:\temp\tree\example.txt
  • D:\temp\tree\examples\
  • D:\temp\tree\examples\example_1.txt
  • D:\temp\tree\examples\example_2.txt
  • D:\temp\tree\examples\subfolder\
  • D:\temp\tree\examples\subfolder\test.txt

Az összes kezdő ex*elem másolásához használja Get-ChildItem a Recurse és a Filter paramétereket, és futtasd az eredményeket a következőreCopy-Item: .

D:\temp\out> Get-ChildItem -Path D:\temp\tree -Recurse -Filter ex* | Copy-Item
D:\temp\out> (Get-ChildItem -Recurse).FullName
D:\temp\out\examples
D:\temp\out\example_1.txt
D:\temp\out\example_2.txt
D:\temp\out\example.ps1
D:\temp\out\example.txt

A szűrőparamétertől Copy-Item eltérően a rekurzió során felderített elemekre Get-ChildItem vonatkozik. Ez lehetővé teszi az elemek rekurzív keresését, szűrését és másolását.

Paraméterek

-Confirm

Jóváhagyást kér a parancsmag futtatása előtt.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Container

Azt jelzi, hogy ez a parancsmag megőrzi a tárolóobjektumokat a másolási művelet során. Alapértelmezés szerint a Tároló paraméter értéke True( Igaz).

Type:SwitchParameter
Position:Named
Default value:True
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Credential

Feljegyzés

Ezt a paramétert a PowerShell-lel telepített szolgáltatók nem támogatják. Ha megszemélyesíteni szeretne egy másik felhasználót, vagy a parancsmag futtatásakor emeli a hitelesítő adatait, használja az Invoke-Command parancsot.

Type:PSCredential
Position:Named
Default value:Current user
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Destination

Megadja az új hely elérési útját. Az alapértelmezett az aktuális könyvtár.

A másolt elem átnevezéséhez adjon meg egy új nevet a Cél paraméter értékében.

Type:String
Position:1
Default value:Current directory
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Exclude

Egy vagy több elérésiút-elemet vagy mintát határoz meg, például "*.txt"a parancsmag működésének korlátozásához. Ennek a paraméternek az értéke az Elérési út paraméter helyettesítő karakteregyeztetési eredményére szűr, nem pedig a végleges eredményre. Ez a paraméter csak akkor érvényes, ha az Elérési út egy vagy több helyettesítő karakterrel van megadva. Mivel ez a paraméter csak az Elérési út paraméterhez feloldott elérési utakra szűr, nem szűri a gyermekmappákban a Recurse paraméterrel való ismétlődéskor felfedezett elemeket.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-Filter

Egy szűrőt ad meg, amely megfelel az Elérési út paraméternek. A Fájlrendszer-szolgáltató az egyetlen telepített PowerShell-szolgáltató, amely támogatja a szűrők használatát. A Fájlrendszer szűrőnyelvének szintaxisa about_Wildcards található. A szűrők hatékonyabbak, mint a többi paraméter, mivel a szolgáltató akkor alkalmazza őket, amikor a parancsmag lekéri az objektumokat, és nem azt, hogy a PowerShell szűrje az objektumokat a lekérés után.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-Force

Azt jelzi, hogy ez a parancsmag olyan elemeket másol, amelyek egyébként nem módosíthatók, például írásvédett fájl vagy alias másolása.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-FromSession

Ez a fájlrendszer-szolgáltató által elérhetővé tett dinamikus paraméter.

Adja meg azt a PSSession objektumot, amelyből egy távoli fájlt másol. Ha ezt a paramétert használja, az Elérési út és a LiteralPath paraméterek a távoli gépen lévő helyi elérési útra hivatkoznak.

További információ: about_FileSystem_Provider.

Type:PSSession
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Include

Egy vagy több elérésiút-elemet vagy mintát határoz meg, például "*.txt"a parancsmag működésének korlátozásához. Ennek a paraméternek az értéke az Elérési út paraméter helyettesítő karakteregyeztetési eredményére szűr, nem pedig a végleges eredményre. Ez a paraméter csak akkor érvényes, ha az Elérési út egy vagy több helyettesítő karakterrel van megadva. Mivel ez a paraméter csak az Elérési út paraméterhez feloldott elérési utakra szűr, nem szűri a gyermekmappákban a Recurse paraméterrel való ismétlődéskor felfedezett elemeket.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-LiteralPath

Egy vagy több hely elérési útját adja meg. A LiteralPath értékét pontosan a beírt módon használja a rendszer. A rendszer egyetlen karaktert sem értelmez helyettesítő karakterként. Ha az elérési út tartalmaz escape karaktereket, csatolja egy idézőjelek közé. Az idézőjelek azt mondják a PowerShellnek, hogy ne értelmezzen karaktereket feloldósorozatként.

További információ: about_Quoting_Rules.

Type:String[]
Aliases:PSPath, LP
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-PassThru

Egy objektumot ad vissza, amely azt az elemet jelöli, amellyel dolgozik. Ez a parancsmag alapértelmezés szerint nem hoz létre kimenetet.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Path

Sztringtömbként megadja a másolandó elemek elérési útját. A helyettesítő karakterek használata engedélyezett.

Type:String[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:True

-Recurse

Azt jelzi, hogy ez a parancsmag rekurzív másolatot készít.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ToSession

Ez a fájlrendszer-szolgáltató által elérhetővé tett dinamikus paraméter.

Adja meg azt a PSSession objektumot, amelybe egy távoli fájlt másol. Ha ezt a paramétert használja, a Cél paraméter a távoli gépen lévő helyi elérési útra hivatkozik.

További információ: about_FileSystem_Provider.

Type:PSSession
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

Bemutatja, mi történne a parancsmag futtatásakor. A parancsmag nem fut.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Bevitelek

String

A parancsmag elérési útját tartalmazó sztringet csövezheti.

Kimenetek

None

Ez a parancsmag alapértelmezés szerint nem ad vissza kimenetet.

PSObject

A PassThru paraméter használatakor ez a parancsmag egy, a másolt elemet képviselő objektumot ad vissza.

Jegyzetek

A PowerShell a következő aliasokat Copy-Itemtartalmazza:

  • Minden platform:
    • copy
    • cpi
  • Windows:
    • cp

Ez a parancsmag úgy lett kialakítva, hogy bármely szolgáltató által közzétett adatokkal működjön együtt. A munkamenetben elérhető szolgáltatók listájához írja be a következőt Get-PSProvider: További információ: about_Providers.