Move-Item
Przenosi element z jednej lokalizacji do innej.
Składnia
Move-Item
[-Path] <String[]>
[[-Destination] <String>]
[-Force]
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[-PassThru]
[-Credential <PSCredential>]
[-WhatIf]
[-Confirm]
[-UseTransaction]
[<CommonParameters>]
Move-Item
-LiteralPath <String[]>
[[-Destination] <String>]
[-Force]
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[-PassThru]
[-Credential <PSCredential>]
[-WhatIf]
[-Confirm]
[-UseTransaction]
[<CommonParameters>]
Opis
Polecenie cmdlet Move-Item
przenosi element, w tym jego właściwości, zawartość i elementy podrzędne, z jednej lokalizacji do innej lokalizacji. Lokalizacje muszą być obsługiwane przez tego samego dostawcę.
Może na przykład przenieść plik lub podkatalog z jednego katalogu do innego lub przenieść podklucz rejestru z jednego klucza do innego. Po przeniesieniu elementu zostanie on dodany do nowej lokalizacji i usunięty z oryginalnej lokalizacji.
Przykłady
Przykład 1. Przenoszenie pliku do innego katalogu i zmienianie jego nazwy
To polecenie przenosi plik Test.txt
z dysku C:
do katalogu E:\Temp
i zmienia jego nazwę z test.txt
na tst.txt
.
Move-Item -Path C:\test.txt -Destination E:\Temp\tst.txt
Przykład 2. Przenoszenie katalogu i jego zawartości do innego katalogu
To polecenie przenosi katalog C:\Temp
i jego zawartość do katalogu C:\Logs
.
Katalog Temp
i wszystkie jego podkatalogi i pliki, a następnie są wyświetlane w katalogu Logs
.
Move-Item -Path C:\Temp -Destination C:\Logs
Przykład 3. Przeniesienie wszystkich plików określonego rozszerzenia z bieżącego katalogu do innego katalogu
To polecenie przenosi wszystkie pliki tekstowe (*.txt
) w bieżącym katalogu (reprezentowane przez kropkę (.
)) do katalogu C:\Logs
.
Move-Item -Path .\*.txt -Destination C:\Logs
Przykład 4. Rekursywnie przenieś wszystkie pliki określonego rozszerzenia z bieżącego katalogu do innego katalogu
To polecenie przenosi wszystkie pliki tekstowe z bieżącego katalogu i wszystkich podkatalogów, rekursywnie, do katalogu C:\TextFiles
.
Get-ChildItem -Path ".\*.txt" -Recurse | Move-Item -Destination "C:\TextFiles"
Polecenie używa polecenia cmdlet Get-ChildItem
, aby pobrać wszystkie elementy podrzędne w bieżącym katalogu (reprezentowane przez kropkę (.
)) i jego podkatalogi z rozszerzeniem nazwy pliku *.txt
. Używa parametru Recurse, aby rekursywne pobieranie i parametr Include ograniczyć pobieranie do *.txt
plików.
Operator potoku (|
) wysyła wyniki tego polecenia do Move-Item
, który przenosi pliki tekstowe do katalogu TextFiles
.
Jeśli pliki, które mają zostać przeniesione do C:\Textfiles
mają taką samą nazwę, Move-Item
wyświetla błąd i kontynuuje działanie, ale przenosi tylko jeden plik o każdej nazwie do C:\Textfiles
. Pozostałe pliki pozostają w ich oryginalnych katalogach.
Jeśli katalog Textfiles
(lub jakikolwiek inny element ścieżki docelowej) nie istnieje, polecenie zakończy się niepowodzeniem. Brak katalogu nie jest tworzony, nawet jeśli używasz parametru Force.
Move-Item
przenosi pierwszy element do pliku o nazwie Textfiles
, a następnie wyświetla błąd wyjaśniający, że plik już istnieje.
Ponadto domyślnie Get-ChildItem
nie przenosi ukrytych plików. Aby przenieść ukryte pliki, użyj parametru Force z Get-ChildItem
.
Nuta
W programie Windows PowerShell 2.0 w przypadku używania parametru Recurse polecenia cmdlet Get-ChildItem
wartość parametru path musi być kontenerem. Użyj parametru Include , aby określić filtr rozszerzenia nazwy pliku *.txt
(Get-ChildItem -Path .\* -Include *.txt -Recurse | Move-Item -Destination C:\TextFiles
).
Przykład 5. Przenoszenie kluczy i wartości rejestru do innego klucza
To polecenie przenosi klucze rejestru i wartości w kluczu rejestru MyCompany
w HKLM\Software
do klucza MyNewCompany
. Symbol wieloznaczny (*
) wskazuje, że zawartość klucza MyCompany
powinna zostać przeniesiona, a nie sam klucz. W tym poleceniu pominięto opcjonalne nazwy parametrów Path i Destination.
Move-Item "HKLM:\software\mycompany\*" "HKLM:\software\mynewcompany"
Przykład 6: Przenoszenie katalogu i jego zawartości do podkatalogu określonego katalogu
To polecenie przenosi katalog Logs[Sept`06]
(i jego zawartość) do katalogu Logs[2006]
.
Move-Item -LiteralPath 'Logs[Sept`06]' -Destination 'Logs[2006]'
Parametr LiteralPath jest używany zamiast Path, ponieważ oryginalna nazwa katalogu zawiera lewy nawias kwadratowy i prawy nawias kwadratowy ([
i ]
). Ścieżka jest również ujęta w pojedynczy cudzysłów ('
), dzięki czemu symbol backtick (`
) nie jest błędnie interpretowany.
Parametr Destination musi być również ujęta w pojedynczy cudzysłów, ponieważ zawiera nawiasy, które mogą być błędnie interpretowane.
Parametry
-Confirm
Monituje o potwierdzenie przed uruchomieniem polecenia cmdlet.
Typ: | SwitchParameter |
Aliasy: | cf |
Position: | Named |
Domyślna wartość: | False |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Credential
Nuta
Ten parametr nie jest obsługiwany przez żadnych dostawców zainstalowanych w programie PowerShell. Aby personifikować innego użytkownika lub podnieść poziom poświadczeń podczas uruchamiania tego polecenia cmdlet, użyj Invoke-Command.
Typ: | PSCredential |
Position: | Named |
Domyślna wartość: | Current user |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | True |
Akceptowanie symboli wieloznacznych: | True |
-Destination
Określa ścieżkę do lokalizacji, w której są przenoszone elementy. Wartość domyślna to bieżący katalog. Dozwolone są symbole wieloznaczne, ale wynik musi zostać rozpoznany w jednej lokalizacji.
Aby zmienić nazwę przenoszonego elementu, określ nową nazwę w wartości parametru Destination.
Typ: | String |
Position: | 1 |
Domyślna wartość: | Current directory |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | True |
Akceptowanie symboli wieloznacznych: | True |
-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
. Dozwolone są symbole wieloznaczne. 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
.
Typ: | String[] |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | True |
-Filter
Określa filtr, aby zakwalifikować parametr ścieżki. Dostawca systemu plików jest jedynym zainstalowanym dostawcą programu PowerShell obsługującym korzystanie z filtrów. Składnię języka filtru systemu plików można znaleźć w about_Wildcards. Filtry są wydajniejsze niż inne parametry, ponieważ dostawca stosuje je, gdy polecenie cmdlet pobiera obiekty zamiast filtrować obiekty po ich pobraniu.
Typ: | String |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | True |
-Force
Wymusza uruchomienie polecenia bez monitowania o potwierdzenie użytkownika. Implementacja różni się od dostawcy do dostawcy. Aby uzyskać więcej informacji, zobacz about_Providers.
Typ: | SwitchParameter |
Position: | Named |
Domyślna wartość: | False |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | 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
. Dozwolone są symbole wieloznaczne. 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
.
Typ: | String[] |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | True |
-LiteralPath
Określa ścieżkę do bieżącej lokalizacji elementów. Wartość LiteralPath jest używana dokładnie tak, jak jest typowana. Znaki nie są interpretowane jako symbole wieloznaczne. Jeśli ścieżka zawiera znaki ucieczki, należy ująć ją w pojedynczy cudzysłów ('
). Pojedyncze znaki cudzysłowu informują program PowerShell, aby nie interpretował żadnych znaków jako sekwencji ucieczki.
Aby uzyskać więcej informacji, zobacz about_Quoting_Rules.
Typ: | String[] |
Aliasy: | PSPath |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | True |
Akceptowanie danych wejściowych potoku: | True |
Akceptowanie symboli wieloznacznych: | False |
-PassThru
Zwraca obiekt reprezentujący przeniesiony element. Domyślnie to polecenie cmdlet nie generuje żadnych danych wyjściowych.
Typ: | SwitchParameter |
Position: | Named |
Domyślna wartość: | False |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Path
Określa ścieżkę do bieżącej lokalizacji elementów. Wartość domyślna to bieżący katalog. Dozwolone są symbole wieloznaczne.
Typ: | String[] |
Position: | 0 |
Domyślna wartość: | Current directory |
Wymagane: | True |
Akceptowanie danych wejściowych potoku: | True |
Akceptowanie symboli wieloznacznych: | True |
-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.
Typ: | SwitchParameter |
Aliasy: | usetx |
Position: | Named |
Domyślna wartość: | False |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-WhatIf
Pokazuje, co się stanie, jeśli polecenie cmdlet zostanie uruchomione. Polecenie cmdlet nie jest uruchamiane.
Typ: | SwitchParameter |
Aliasy: | wi |
Position: | Named |
Domyślna wartość: | False |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
Dane wejściowe
Możesz potokować ciąg zawierający ścieżkę do tego polecenia cmdlet.
Dane wyjściowe
None
Domyślnie to polecenie cmdlet nie zwraca żadnych danych wyjściowych.
Jeśli używasz parametru PassThru, to polecenie cmdlet zwraca obiekt reprezentujący przeniesiony element.
Uwagi
Program Windows PowerShell zawiera następujące aliasy dla Move-Item
:
mi
move
mv
To polecenie cmdlet przeniesie pliki między dyskami obsługiwanymi przez tego samego dostawcę, ale przeniesie katalogi tylko na tym samym dysku.
Ponieważ polecenie
Move-Item
przenosi właściwości, zawartość i elementy podrzędne elementu, wszystkie ruchy są domyślnie rekursywne.To polecenie cmdlet jest przeznaczone do pracy z danymi udostępnianymi przez dowolnego dostawcę. Aby wyświetlić listę dostawców dostępnych w sesji, wpisz
Get-PSProvider
. Aby uzyskać więcej informacji, zobacz about_Providers.