Copy-Item
Hiermee kopieert u een item van de ene locatie naar de andere.
Syntaxis
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
De cmdlet Copy-Item
kopieert een item van de ene locatie naar de andere locatie in dezelfde naamruimte.
Het kan bijvoorbeeld een bestand naar een map kopiëren, maar het kan geen bestand naar een certificaatstation kopiëren.
Met deze cmdlet worden de items die worden gekopieerd, niet geknipt of verwijderd. De specifieke items die de cmdlet kan kopiëren, zijn afhankelijk van de PowerShell-provider die het item beschikbaar maakt. Het kan bijvoorbeeld bestanden en mappen kopiëren in een bestandssysteemstation en registersleutels en vermeldingen in het registerstation.
Met deze cmdlet kunt u items in dezelfde opdracht kopiëren en de naam ervan wijzigen. Als u de naam van een item wilt wijzigen, voert u de nieuwe naam in de waarde van de parameter Destination in. Als u de naam van een item wilt wijzigen en niet wilt kopiëren, gebruikt u de cmdlet Rename-Item
.
Voorbeelden
Voorbeeld 1: Een bestand kopiëren naar de opgegeven map
In dit voorbeeld wordt het mar1604.log.txt
-bestand gekopieerd naar de map C:\Presentation
. Het oorspronkelijke bestand wordt niet verwijderd.
Copy-Item "C:\Wabash\Logfiles\mar1604.log.txt" -Destination "C:\Presentation"
Voorbeeld 2: Mapinhoud kopiëren naar een bestaande map
In dit voorbeeld wordt de inhoud van de C:\Logfiles
map gekopieerd naar de bestaande C:\Drawings
-map. De Logfiles
map wordt niet gekopieerd.
Als de map Logfiles
bestanden in submappen bevat, worden deze submappen gekopieerd met hun bestandsstructuren intact. De parameter Container is standaard ingesteld op True, waardoor de mapstructuur behouden blijft.
Copy-Item -Path "C:\Logfiles\*" -Destination "C:\Drawings" -Recurse
Notitie
Als u de Logfiles
map in de kopie wilt opnemen, verwijdert u de \*
uit het Pad.
Bijvoorbeeld:
Copy-Item -Path "C:\Logfiles" -Destination "C:\Drawings" -Recurse
Voorbeeld 3: De inhoud van de map kopiëren naar een nieuwe map
In dit voorbeeld wordt de inhoud van de C:\Logfiles
bronmap gekopieerd en wordt er een nieuwe doelmap gemaakt. De nieuwe doelmap, \Logs
wordt gemaakt in C:\Drawings
.
Als u de naam van de bronmap wilt opnemen, kopieert u naar een bestaande doelmap, zoals wordt weergegeven in voorbeeld 2. Of geef de nieuwe doelmap dezelfde naam als de bronmap.
Copy-Item -Path "C:\Logfiles" -Destination "C:\Drawings\Logs" -Recurse
Notitie
Als het pad\*
bevat, worden alle bestandsinhoud van de map, zonder de submapstructuren, gekopieerd naar de nieuwe doelmap. Bijvoorbeeld:
Copy-Item -Path "C:\Logfiles\*" -Destination "C:\Drawings\Logs" -Recurse
Voorbeeld 4: Een bestand kopiëren naar de opgegeven map en de naam van het bestand wijzigen
In dit voorbeeld wordt de Copy-Item
-cmdlet gebruikt om het Get-Widget.ps1
-script uit de \\Server01\Share
map naar de \\Server12\ScriptArchive
-map te kopiëren. Als onderdeel van de kopieerbewerking wijzigt de opdracht de itemnaam van Get-Widget.ps1
in Get-Widget.ps1.txt
, zodat deze kan worden toegevoegd aan e-mailberichten.
Copy-Item "\\Server01\Share\Get-Widget.ps1" -Destination "\\Server12\ScriptArchive\Get-Widget.ps1.txt"
Voorbeeld 5: Een bestand kopiëren naar een externe computer
Er wordt een sessie gemaakt op de externe computer met de naam Server01 met de referentie van Contoso\User01
en slaat de resultaten op in de variabele met de naam $Session
.
De Copy-Item
cmdlet kopieert test.log
van de D:\Folder001
map naar de C:\Folder001_Copy
map op de externe computer met behulp van de sessiegegevens die zijn opgeslagen in de $Session
variabele. Het oorspronkelijke bestand wordt niet verwijderd.
$Session = New-PSSession -ComputerName "Server01" -Credential "Contoso\User01"
Copy-Item "D:\Folder001\test.log" -Destination "C:\Folder001_Copy\" -ToSession $Session
Voorbeeld 6: de volledige inhoud van een map naar een externe computer kopiëren
Er wordt een sessie gemaakt op de externe computer met de naam Server01 met de referentie van Contoso\User01
en slaat de resultaten op in de variabele met de naam $Session
.
De Copy-Item
cmdlet kopieert de volledige inhoud van de D:\Folder002
map naar de C:\Folder002_Copy
map op de externe computer met behulp van de sessiegegevens die zijn opgeslagen in de $Session
variabele. De submappen worden gekopieerd met hun bestandsstructuren intact.
$Session = New-PSSession -ComputerName "Server02" -Credential "Contoso\User01"
Copy-Item "D:\Folder002\" -Destination "C:\Folder002_Copy\" -ToSession $Session
Voorbeeld 7: Recursief de volledige inhoud van een map kopiëren naar een externe computer
Er wordt een sessie gemaakt op de externe computer met de naam Server01 met de referentie van Contoso\User01
en slaat de resultaten op in de variabele met de naam $Session
.
De Copy-Item
cmdlet kopieert de volledige inhoud van de D:\Folder003
map naar de C:\Folder003_Copy
map op de externe computer met behulp van de sessiegegevens die zijn opgeslagen in de $Session
variabele. De submappen worden gekopieerd met hun bestandsstructuren intact. Omdat de parameter Recurse wordt gebruikt, maakt de bewerking de map Folder003_Copy
als deze nog niet bestaat.
$Session = New-PSSession -ComputerName "Server04" -Credential "Contoso\User01"
Copy-Item "D:\Folder003\" -Destination "C:\Folder003_Copy\" -ToSession $Session -Recurse
Voorbeeld 8: Een bestand kopiëren naar een externe computer en de naam van het bestand wijzigen
Er wordt een sessie gemaakt op de externe computer met de naam Server01 met de referentie van Contoso\User01
en slaat de resultaten op in de variabele met de naam $Session
.
De Copy-Item
cmdlet kopieert scriptingexample.ps1
van de D:\Folder004
map naar de C:\Folder004_Copy
map op de externe computer met behulp van de sessiegegevens die zijn opgeslagen in de $Session
variabele. Als onderdeel van de kopieerbewerking wijzigt de opdracht de itemnaam van scriptingexample.ps1
in scriptingexample_copy.ps1
, zodat deze kan worden toegevoegd aan e-mailberichten. Het oorspronkelijke bestand wordt niet verwijderd.
$Session = New-PSSession -ComputerName "Server04" -Credential "Contoso\User01"
Copy-Item "D:\Folder004\scriptingexample.ps1" -Destination "C:\Folder004_Copy\scriptingexample_copy.ps1" -ToSession $Session
Voorbeeld 9: Een extern bestand kopiëren naar de lokale computer
Er wordt een sessie gemaakt op de externe computer met de naam Server01 met de referentie van Contoso\User01
en slaat de resultaten op in de variabele met de naam $Session
.
De Copy-Item
cmdlet kopieert test.log
van de externe C:\MyRemoteData\
naar de lokale D:\MyLocalData
map met behulp van de sessiegegevens die zijn opgeslagen in de $Session
variabele. Het oorspronkelijke bestand wordt niet verwijderd.
$Session = New-PSSession -ComputerName "Server01" -Credential "Contoso\User01"
Copy-Item "C:\MyRemoteData\test.log" -Destination "D:\MyLocalData\" -FromSession $Session
Voorbeeld 10: de volledige inhoud van een externe map naar de lokale computer kopiëren
Er wordt een sessie gemaakt op de externe computer met de naam Server01 met de referentie van Contoso\User01
en slaat de resultaten op in de variabele met de naam $Session
.
De Copy-Item
cmdlet kopieert de volledige inhoud van de externe C:\MyRemoteData\scripts
map naar de lokale D:\MyLocalData
map met behulp van de sessiegegevens die zijn opgeslagen in de $Session
variabele. Als de map scripts bestanden in submappen bevat, worden deze submappen gekopieerd met hun bestandsstructuren intact.
$Session = New-PSSession -ComputerName "Server01" -Credential "Contoso\User01"
Copy-Item "C:\MyRemoteData\scripts" -Destination "D:\MyLocalData\" -FromSession $Session
Voorbeeld 11: De volledige inhoud van een externe map recursief kopiëren naar de lokale computer
Er wordt een sessie gemaakt op de externe computer met de naam Server01 met de referentie van Contoso\User01
en slaat de resultaten op in de variabele met de naam $Session
.
De Copy-Item
cmdlet kopieert de volledige inhoud van de externe C:\MyRemoteData\scripts
map naar de lokale D:\MyLocalData\scripts
map met behulp van de sessiegegevens die zijn opgeslagen in de $Session
variabele. Omdat de parameter Recurse wordt gebruikt, maakt de bewerking de map met scripts als deze nog niet bestaat. Als de map scripts bestanden in submappen bevat, worden deze submappen gekopieerd met hun bestandsstructuren intact.
$Session = New-PSSession -ComputerName "Server01" -Credential "Contoso\User01"
Copy-Item "C:\MyRemoteData\scripts" -Destination "D:\MyLocalData\scripts" -FromSession $Session -Recurse
Parameters
-Confirm
U wordt gevraagd om bevestiging voordat u de cmdlet uitvoert.
Type: | SwitchParameter |
Aliassen: | cf |
Position: | Named |
Default value: | False |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-Container
Geeft aan dat deze cmdlet containerobjecten bewaart tijdens de kopieerbewerking. De parameter Container is standaard ingesteld op True.
Type: | SwitchParameter |
Position: | Named |
Default value: | True |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-Credential
Notitie
Deze parameter wordt niet ondersteund door providers die zijn geïnstalleerd met PowerShell. Als u een andere gebruiker wilt imiteren of uw referenties wilt verhogen bij het uitvoeren van deze cmdlet, gebruikt u Invoke-Command-.
Type: | PSCredential |
Position: | Named |
Default value: | Current user |
Vereist: | False |
Pijplijninvoer accepteren: | True |
Jokertekens accepteren: | False |
-Destination
Hiermee geeft u het pad naar de nieuwe locatie. De standaardwaarde is de huidige map.
Als u de naam van het gekopieerde item wilt wijzigen, geeft u een nieuwe naam op in de waarde van de parameter Destination.
Type: | String |
Position: | 1 |
Default value: | Current directory |
Vereist: | False |
Pijplijninvoer accepteren: | True |
Jokertekens accepteren: | False |
-Exclude
Hiermee geeft u, als een tekenreeksmatrix, een item of items op die door deze cmdlet worden uitgesloten in de bewerking. De waarde van deze parameter komt in aanmerking voor de parameter Path. Voer een padelement of patroon in, zoals *.txt
. Jokertekens zijn toegestaan. De parameter Uitsluiten is alleen van kracht wanneer de opdracht de inhoud van een item bevat, zoals C:\Windows\*
, waarbij het jokerteken de inhoud van de C:\Windows
map aangeeft.
Type: | String[] |
Position: | Named |
Default value: | None |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | True |
-Filter
Hiermee geeft u een filter op om de parameter Path te kwalificeren. De FileSystem-provider is de enige geïnstalleerde PowerShell-provider die het gebruik van filters ondersteunt. U vindt de syntaxis voor de Bestandssysteem filtertaal in about_Wildcards. Filters zijn efficiënter dan andere parameters, omdat de provider deze toepast wanneer de cmdlet de objecten ophaalt in plaats van PowerShell de objecten te filteren nadat ze zijn opgehaald.
Type: | String |
Position: | Named |
Default value: | None |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | True |
-Force
Geeft aan dat met deze cmdlet items worden gekopieerd die anders niet kunnen worden gewijzigd, zoals kopiëren via een alleen-lezenbestand of alias.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-FromSession
Hiermee geeft u de PSSession object waaruit een extern bestand wordt gekopieerd. Wanneer u deze parameter gebruikt, verwijzen de parameters Path en LiteralPath naar het lokale pad op de externe computer.
Type: | PSSession |
Position: | Named |
Default value: | None |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-Include
Hiermee geeft u, als tekenreeksmatrix, een item of items op die deze cmdlet in de bewerking bevat. De waarde van deze parameter komt in aanmerking voor de parameter Path. Voer een padelement of patroon in, zoals "*.txt"
. Jokertekens zijn toegestaan. De parameter Opnemen is alleen van kracht wanneer de opdracht de inhoud van een item bevat, zoals C:\Windows\*
, waarbij het jokerteken de inhoud van de C:\Windows
map aangeeft.
Type: | String[] |
Position: | Named |
Default value: | None |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | True |
-LiteralPath
Hiermee geeft u een pad naar een of meer locaties. De waarde van LiteralPath- wordt precies gebruikt zoals deze is getypt. Er worden geen tekens geïnterpreteerd als jokertekens. Als het pad escapetekens bevat, plaatst u het tussen enkele aanhalingstekens. Enkele aanhalingstekens geven PowerShell aan dat er geen tekens als escapereeksen moeten worden geïnterpreteerd.
Zie about_Quoting_Rulesvoor meer informatie.
Type: | String[] |
Aliassen: | PSPath |
Position: | Named |
Default value: | None |
Vereist: | True |
Pijplijninvoer accepteren: | True |
Jokertekens accepteren: | False |
-PassThru
Retourneert een object dat het item vertegenwoordigt waarmee u werkt. Deze cmdlet genereert standaard geen uitvoer.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-Path
Hiermee geeft u, als een tekenreeksmatrix, het pad naar de te kopiëren items op. Jokertekens zijn toegestaan.
Type: | String[] |
Position: | 0 |
Default value: | None |
Vereist: | True |
Pijplijninvoer accepteren: | True |
Jokertekens accepteren: | True |
-Recurse
Geeft aan dat deze cmdlet een recursieve kopie uitvoert.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-ToSession
Hiermee geeft u de PSSession object waarnaar een extern bestand wordt gekopieerd. Wanneer u deze parameter gebruikt, verwijst de parameter Destination naar het lokale pad op de externe computer.
Type: | PSSession |
Position: | Named |
Default value: | None |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-UseTransaction
Bevat de opdracht in de actieve transactie. Deze parameter is alleen geldig wanneer een transactie wordt uitgevoerd. Zie about_Transactionsvoor meer informatie.
Type: | SwitchParameter |
Aliassen: | usetx |
Position: | Named |
Default value: | False |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-WhatIf
Toont wat er zou gebeuren als de cmdlet wordt uitgevoerd. De cmdlet wordt niet uitgevoerd.
Type: | SwitchParameter |
Aliassen: | wi |
Position: | Named |
Default value: | False |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
Invoerwaarden
U kunt een tekenreeks met een pad naar deze cmdlet doorsluisen.
Uitvoerwaarden
None or an object representing the copied item
Wanneer u de parameter PassThru gebruikt, retourneert deze cmdlet een object dat het gekopieerde item vertegenwoordigt. Anders genereert deze cmdlet geen uitvoer.
Notities
Deze cmdlet is ontworpen om te werken met de gegevens die door elke provider worden weergegeven. Als u de providers wilt weergeven die beschikbaar zijn in uw sessie, typt u Get-PSProvider
. Zie about_Providersvoor meer informatie.