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