Udostępnij za pomocą


Copy-Item

Kopiuje element z jednej lokalizacji do innej.

Składnia

Path (domyślnie)

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>]

LiteralPath

Copy-Item
    [[-Destination] <String>]
    -LiteralPath <String[]>
    [-Container]
    [-Force]
    [-Filter <String>]
    [-Include <String[]>]
    [-Exclude <String[]>]
    [-Recurse]
    [-PassThru]
    [-Credential <PSCredential>]
    [-WhatIf]
    [-Confirm]
    [-UseTransaction]
    [-FromSession <PSSession>]
    [-ToSession <PSSession>]
    [<CommonParameters>]

Opis

Polecenie cmdlet Copy-Item kopiuje element z jednej lokalizacji do innej lokalizacji w tej samej przestrzeni nazw. Na przykład może skopiować plik do folderu, ale nie może skopiować pliku na dysk certyfikatu.

To polecenie cmdlet nie powoduje wycinania ani usuwania kopiowanych elementów. Określone elementy, które polecenie cmdlet może skopiować, zależy od dostawcy programu PowerShell, który uwidacznia element. Na przykład może kopiować pliki i katalogi na dysku systemu plików oraz klucze rejestru i wpisy na dysku rejestru.

To polecenie cmdlet może kopiować i zmieniać nazwy elementów w tym samym poleceniu. Aby zmienić nazwę elementu, wprowadź nową nazwę w wartości parametru Destination. Aby zmienić nazwę elementu i nie skopiować go, użyj polecenia cmdlet Rename-Item.

Przykłady

Przykład 1. Kopiowanie pliku do określonego katalogu

Ten przykład kopiuje plik mar1604.log.txt do katalogu C:\Presentation. Oryginalny plik nie jest usuwany.

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

Przykład 2. Kopiowanie zawartości katalogu do istniejącego katalogu

W tym przykładzie zawartość katalogu C:\Logfiles jest kopiowana do istniejącego katalogu C:\Drawings. Katalog Logfiles nie jest kopiowany.

Jeśli katalog Logfiles zawiera pliki w podkatalogach, te podkatalogi są kopiowane z drzewami plików nienaruszonymi. Domyślnie parametr Container jest ustawiony na wartość True, która zachowuje strukturę katalogów.

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

Uwaga / Notatka

Jeśli musisz dołączyć katalog Logfiles do kopii, usuń \* ze ścieżki . Przykład:

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

Przykład 3. Kopiowanie zawartości katalogu do nowego katalogu

Ten przykład kopiuje zawartość katalogu źródłowego C:\Logfiles i tworzy nowy katalog docelowy. Nowy katalog docelowy \Logs jest tworzony w C:\Drawings.

Aby dołączyć nazwę katalogu źródłowego, skopiuj do istniejącego katalogu docelowego, jak pokazano w Przykład 2. Możesz też nazwać nowy katalog docelowy tym samym co katalog źródłowy.

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

Uwaga / Notatka

Jeśli ścieżka zawiera \*, wszystkie zawartość pliku katalogu bez drzew podkatalogu zostaną skopiowane do nowego katalogu docelowego. Przykład:

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

Przykład 4. Kopiowanie pliku do określonego katalogu i zmienianie nazwy pliku

W tym przykładzie użyto polecenia cmdlet Copy-Item do skopiowania skryptu Get-Widget.ps1 z katalogu \\Server01\Share do katalogu \\Server12\ScriptArchive. W ramach operacji kopiowania polecenie zmienia nazwę elementu z Get-Widget.ps1 na Get-Widget.ps1.txt, aby można było dołączyć ją do wiadomości e-mail.

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

Przykład 5. Kopiowanie pliku na komputer zdalny

Sesja jest tworzona na komputerze zdalnym o nazwie Server01 przy użyciu poświadczeń Contoso\User01 i zapisuje wyniki w zmiennej o nazwie $Session.

Polecenie cmdlet Copy-Item kopiuje test.log z folderu D:\Folder001 do folderu C:\Folder001_Copy na komputerze zdalnym przy użyciu informacji o sesji przechowywanych w zmiennej $Session. Oryginalny plik nie jest usuwany.

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

Przykład 6. Kopiowanie całej zawartości folderu na komputer zdalny

Sesja jest tworzona na komputerze zdalnym o nazwie Server01 przy użyciu poświadczeń Contoso\User01 i zapisuje wyniki w zmiennej o nazwie $Session.

Polecenie cmdlet Copy-Item kopiuje całą zawartość z folderu D:\Folder002 do katalogu C:\Folder002_Copy na komputerze zdalnym przy użyciu informacji o sesji przechowywanych w zmiennej $Session. Podfoldery są kopiowane z drzewami plików nienaruszonymi.

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

Przykład 7. Rekursywnie skopiuj całą zawartość folderu na komputer zdalny

Sesja jest tworzona na komputerze zdalnym o nazwie Server01 przy użyciu poświadczeń Contoso\User01 i zapisuje wyniki w zmiennej o nazwie $Session.

Polecenie cmdlet Copy-Item kopiuje całą zawartość z folderu D:\Folder003 do katalogu C:\Folder003_Copy na komputerze zdalnym przy użyciu informacji o sesji przechowywanych w zmiennej $Session. Podfoldery są kopiowane z drzewami plików nienaruszonymi. Ponieważ jest używany parametr Recurse, operacja tworzy folder Folder003_Copy, jeśli jeszcze nie istnieje.

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

Przykład 8: Kopiowanie pliku na komputer zdalny, a następnie zmienianie nazwy pliku

Sesja jest tworzona na komputerze zdalnym o nazwie Server01 przy użyciu poświadczeń Contoso\User01 i zapisuje wyniki w zmiennej o nazwie $Session.

Polecenie cmdlet Copy-Item kopiuje scriptingexample.ps1 z folderu D:\Folder004 do folderu C:\Folder004_Copy na komputerze zdalnym przy użyciu informacji o sesji przechowywanych w zmiennej $Session. W ramach operacji kopiowania polecenie zmienia nazwę elementu z scriptingexample.ps1 na scriptingexample_copy.ps1, aby można było dołączyć ją do wiadomości e-mail. Oryginalny plik nie jest usuwany.

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

Przykład 9. Kopiowanie pliku zdalnego na komputer lokalny

Sesja jest tworzona na komputerze zdalnym o nazwie Server01 przy użyciu poświadczeń Contoso\User01 i zapisuje wyniki w zmiennej o nazwie $Session.

Polecenie cmdlet Copy-Item kopiuje test.log z C:\MyRemoteData\ zdalnego do lokalnego folderu D:\MyLocalData przy użyciu informacji o sesji przechowywanych w zmiennej $Session. Oryginalny plik nie jest usuwany.

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

Przykład 10: Kopiowanie całej zawartości folderu zdalnego na komputer lokalny

Sesja jest tworzona na komputerze zdalnym o nazwie Server01 przy użyciu poświadczeń Contoso\User01 i zapisuje wyniki w zmiennej o nazwie $Session.

Polecenie cmdlet Copy-Item kopiuje całą zawartość z folderu C:\MyRemoteData\scripts zdalnego do folderu D:\MyLocalData lokalnego przy użyciu informacji o sesji przechowywanych w zmiennej $Session. Jeśli folder scripts zawiera pliki w podfolderach, te podfoldery są kopiowane ze swoimi drzewami plików bez zmian.

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

Przykład 11: Rekursywnie skopiuj całą zawartość folderu zdalnego na komputer lokalny

Sesja jest tworzona na komputerze zdalnym o nazwie Server01 przy użyciu poświadczeń Contoso\User01 i zapisuje wyniki w zmiennej o nazwie $Session.

Polecenie cmdlet Copy-Item kopiuje całą zawartość z folderu C:\MyRemoteData\scripts zdalnego do folderu D:\MyLocalData\scripts lokalnego przy użyciu informacji o sesji przechowywanych w zmiennej $Session. Ponieważ jest używany parametr Recurse, operacja tworzy folder scripts, jeśli jeszcze nie istnieje. Jeśli folder scripts zawiera pliki w podfolderach, te podfoldery są kopiowane ze swoimi drzewami plików bez zmian.

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

Parametry

-Confirm

Prosi o potwierdzenie przed uruchomieniem cmdletu.

Właściwości parametru

Typ:SwitchParameter
Domyślna wartość:False
Obsługuje symbole wieloznaczne:False
DontShow:False
Aliasy:por

Zestawy parametrów

(All)
Position:Named
Obowiązkowe:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-Container

Wskazuje, że to polecenie cmdlet zachowuje obiekty kontenera podczas operacji kopiowania. Domyślnie parametr Container jest ustawiony na wartość True.

Właściwości parametru

Typ:SwitchParameter
Domyślna wartość:True
Obsługuje symbole wieloznaczne:False
DontShow:False

Zestawy parametrów

(All)
Position:Named
Obowiązkowe:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-Credential

Uwaga / Notatka

Ten parametr nie jest obsługiwany przez żadnych dostawców zainstalowanych w programie PowerShell. Aby podszyć się pod innego użytkownika lub podnieść swoje uprawnienia podczas uruchamiania tego cmdletu, użyj Invoke-Command.

Właściwości parametru

Typ:PSCredential
Domyślna wartość:Current user
Obsługuje symbole wieloznaczne:False
DontShow:False

Zestawy parametrów

(All)
Position:Named
Obowiązkowe:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:True
Wartość z pozostałych argumentów:False

-Destination

Określa ścieżkę do nowej lokalizacji. Wartość domyślna to bieżący katalog.

Aby zmienić nazwę skopiowanego elementu, określ nową nazwę w wartości parametru Destination.

Właściwości parametru

Typ:String
Domyślna wartość:Current directory
Obsługuje symbole wieloznaczne:False
DontShow:False

Zestawy parametrów

(All)
Position:1
Obowiązkowe:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:True
Wartość z pozostałych argumentów:False

-Exclude

Określa jako tablicę ciągów element lub elementy, które to polecenie cmdlet wyklucza w operacji. Wartość tego parametru kwalifikuje parametr Path. Wprowadź element ścieżki lub wzorzec, taki jak *.txt. Symbole wieloznaczne są dozwolone. Parametr Exclude jest skuteczny tylko wtedy, gdy polecenie zawiera zawartość elementu, na przykład C:\Windows\*, gdzie symbol wieloznaczny określa zawartość katalogu C:\Windows.

Właściwości parametru

Typ:

String[]

Domyślna wartość:None
Obsługuje symbole wieloznaczne:True
DontShow:False

Zestawy parametrów

(All)
Position:Named
Obowiązkowe:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-Filter

Określa filtr w celu kwalifikacji parametru ścieżki. Dostawca systemu plików jest jedynym zainstalowanym dostawcą programu PowerShell obsługującym korzystanie z filtrów. Składnię języka filtru FileSystem można znaleźć w about_Wildcards. Filtry są bardziej wydajne niż inne parametry, ponieważ dostawca stosuje je, gdy polecenie cmdlet pobiera obiekty, zamiast filtrować obiekty programu PowerShell po ich pobraniu.

Właściwości parametru

Typ:String
Domyślna wartość:None
Obsługuje symbole wieloznaczne:True
DontShow:False

Zestawy parametrów

(All)
Position:Named
Obowiązkowe:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-Force

Wskazuje, że to polecenie cmdlet kopiuje elementy, których nie można zmienić w inny sposób, na przykład kopiowanie pliku lub aliasu tylko do odczytu.

Właściwości parametru

Typ:SwitchParameter
Domyślna wartość:False
Obsługuje symbole wieloznaczne:False
DontShow:False

Zestawy parametrów

(All)
Position:Named
Obowiązkowe:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-FromSession

Określa obiekt PSSession, z którego jest kopiowany plik zdalny. Jeśli używasz tego parametru, parametry ścieżki i LiteralPath odwołują się do ścieżki lokalnej na maszynie zdalnej.

Właściwości parametru

Typ:PSSession
Domyślna wartość:None
Obsługuje symbole wieloznaczne:False
DontShow:False

Zestawy parametrów

(All)
Position:Named
Obowiązkowe:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-Include

Określa jako tablicę ciągów element lub elementy, które to polecenie cmdlet zawiera w operacji. Wartość tego parametru kwalifikuje parametr Path. Wprowadź element ścieżki lub wzorzec, taki jak "*.txt". Symbole wieloznaczne są dozwolone. Parametr Include jest skuteczny tylko wtedy, gdy polecenie zawiera zawartość elementu, na przykład C:\Windows\*, gdzie symbol wieloznaczny określa zawartość katalogu C:\Windows.

Właściwości parametru

Typ:

String[]

Domyślna wartość:None
Obsługuje symbole wieloznaczne:True
DontShow:False

Zestawy parametrów

(All)
Position:Named
Obowiązkowe:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-LiteralPath

Określa ścieżkę do co najmniej jednej lokalizacji. Wartość LiteralPath jest używana dokładnie tak, jak jest typowana. Żadne znaki nie są interpretowane jako symbole wieloznaczne. Jeśli ścieżka zawiera znaki ucieczki, należy ująć ją w pojedynczy cudzysłów. Pojedyncze cudzysłowy wskazują programowi PowerShell, aby nie interpretował żadnych znaków jako sekwencji ucieczki.

Aby uzyskać więcej informacji, zobacz about_Quoting_Rules.

Właściwości parametru

Typ:

String[]

Domyślna wartość:None
Obsługuje symbole wieloznaczne:False
DontShow:False
Aliasy:PSPath

Zestawy parametrów

LiteralPath
Position:Named
Obowiązkowe:True
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:True
Wartość z pozostałych argumentów:False

-PassThru

Zwraca obiekt reprezentujący element, z którym pracujesz. Domyślnie to polecenie cmdlet nie generuje żadnych danych wyjściowych.

Właściwości parametru

Typ:SwitchParameter
Domyślna wartość:False
Obsługuje symbole wieloznaczne:False
DontShow:False

Zestawy parametrów

(All)
Position:Named
Obowiązkowe:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-Path

Określa jako tablicę ciągów ścieżkę do elementów do skopiowania. Symbole wieloznaczne są dozwolone.

Właściwości parametru

Typ:

String[]

Domyślna wartość:None
Obsługuje symbole wieloznaczne:True
DontShow:False

Zestawy parametrów

Path
Position:0
Obowiązkowe:True
Wartość z potoku:True
Wartość z potoku według nazwy właściwości:True
Wartość z pozostałych argumentów:False

-Recurse

Wskazuje, że to polecenie cmdlet wykonuje cykliczną kopię.

Właściwości parametru

Typ:SwitchParameter
Domyślna wartość:False
Obsługuje symbole wieloznaczne:False
DontShow:False

Zestawy parametrów

(All)
Position:Named
Obowiązkowe:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-ToSession

Określa obiekt PSSession, do którego jest kopiowany plik zdalny. Jeśli używasz tego parametru, parametr Destination odnosi się do ścieżki lokalnej na maszynie zdalnej.

Właściwości parametru

Typ:PSSession
Domyślna wartość:None
Obsługuje symbole wieloznaczne:False
DontShow:False

Zestawy parametrów

(All)
Position:Named
Obowiązkowe:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-UseTransaction

Zawiera polecenie w aktywnej transakcji. Ten parametr jest prawidłowy tylko wtedy, gdy transakcja jest w toku. Aby uzyskać więcej informacji, zobacz about_Transactions.

Właściwości parametru

Typ:SwitchParameter
Domyślna wartość:False
Obsługuje symbole wieloznaczne:False
DontShow:False
Aliasy:usetx

Zestawy parametrów

(All)
Position:Named
Obowiązkowe:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-WhatIf

Pokazuje, co się stanie, jeśli polecenie cmdlet zostanie uruchomione. Cmdlet nie został uruchomiony.

Właściwości parametru

Typ:SwitchParameter
Domyślna wartość:False
Obsługuje symbole wieloznaczne:False
DontShow:False
Aliasy:Wi

Zestawy parametrów

(All)
Position:Named
Obowiązkowe:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

CommonParameters

To polecenie cmdlet obsługuje typowe parametry: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction i -WarningVariable. Aby uzyskać więcej informacji, zobacz about_CommonParameters.

Dane wejściowe

String

Możesz przekierować ciąg zawierający ścieżkę do tego cmdletu.

Dane wyjściowe

None or an object representing the copied item

Jeśli używasz parametru PassThru, to polecenie cmdlet zwraca obiekt reprezentujący skopiowany element. W przeciwnym razie to polecenie cmdlet nie generuje żadnych danych wyjściowych.

Uwagi

Cmdlet jest przeznaczony do pracy z danymi udostępnionymi przez dowolnego dostawcę. Aby wyświetlić listę dostawców dostępnych w sesji, wpisz Get-PSProvider. Aby uzyskać więcej informacji, zobacz about_Providers.