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]
[<CommonParameters>]
Move-Item
-LiteralPath <String[]>
[[-Destination] <String>]
[-Force]
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[-PassThru]
[-Credential <PSCredential>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Opis
Polecenie Move-Item
cmdlet 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 jest on dodawany do nowej lokalizacji i usuwany z oryginalnej lokalizacji.
Przykłady
Przykład 1: Przenoszenie pliku do innego katalogu i zmienianie jego nazwy
To polecenie przenosi Test.txt
plik z C:
dysku do E:\Temp
katalogu 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 C:\Temp
katalog i jego zawartość do C:\Logs
katalogu.
Katalog Temp
i wszystkie jego podkatalogi i pliki zostaną wyświetlone w Logs
katalogu.
Move-Item -Path C:\Temp -Destination C:\Logs
Przykład 3: Przenieś wszystkie pliki określonego rozszerzenia z bieżącego katalogu do innego katalogu
To polecenie przenosi wszystkie pliki tekstowe (*.txt
) w bieżącym katalogu (reprezentowanym przez kropkę C:\Logs
(.
)) do katalogu.
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 C:\TextFiles
katalogu.
Get-ChildItem -Path ".\*.txt" -Recurse | Move-Item -Destination "C:\TextFiles"
Polecenie używa Get-ChildItem
polecenia cmdlet , aby pobrać wszystkie elementy podrzędne w bieżącym katalogu (reprezentowane przez kropkę (.
)) i jego podkatalogi, które mają *.txt
rozszerzenie nazwy pliku. Używa parametru Recurse do rekursywnego pobierania i parametru Include , aby ograniczyć pobieranie do *.txt
plików.
Operator potoku (|
) wysyła wyniki tego polecenia do Move-Item
, co powoduje przeniesienie plików tekstowych do TextFiles
katalogu.
Jeśli pliki, które mają zostać przeniesione, mają C:\Textfiles
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.
Textfiles
Jeśli katalog (lub jakikolwiek inny element ścieżki docelowej) nie istnieje, polecenie zakończy się niepowodzeniem. Brakujący katalog 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 parametrem Get-ChildItem
.
Uwaga
W Windows PowerShell 2.0 podczas korzystania z parametru Get-ChildItem
Recurse polecenia cmdlet wartość parametru Path musi być kontenerem. Użyj parametru Include , aby określić *.txt
filtr rozszerzenia nazwy pliku (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 MyCompany
rejestru do HKLM\Software
MyNewCompany
klucza . Symbol wieloznaczny (*
) wskazuje, że zawartość MyCompany
klucza powinna zostać przeniesiona, a nie sam klucz. W tym poleceniu zostaną pominięte 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 Logs[Sept`06]
katalog (i jego zawartość) do Logs[2006]
katalogu.
Move-Item -LiteralPath 'Logs[Sept`06]' -Destination 'Logs[2006]'
Parametr LiteralPath jest używany zamiast ścieżki, ponieważ oryginalna nazwa katalogu zawiera lewy nawias kwadratowy i prawy nawias kwadratowy ([
i ]
). Ścieżka jest również ujęta w znaki pojedynczego cudzysłowu ('
), dzięki czemu symbol backtick (`
) nie jest błędnie interpretowany.
Parametr Docelowy 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.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Credential
Uwaga
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 polecenia Invoke-Command.
Type: | PSCredential |
Position: | Named |
Default value: | Current user |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Destination
Określa ścieżkę do lokalizacji, w której są przenoszone elementy. Ustawieniem domyślnym jest bieżący katalog. Symbole wieloznaczne nie są dozwolone.
Aby zmienić nazwę przenoszonego elementu, określ nową nazwę w wartości parametru Destination .
Type: | String |
Position: | 1 |
Default value: | Current directory |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | 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ść C:\Windows
katalogu.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-Filter
Określa filtr, aby zakwalifikować parametr Ścieżka . Dostawca systemu plików jest jedynym zainstalowanym dostawcą programu PowerShell, który obsługuje korzystanie z filtrów. Składnię języka filtru Systemu plików 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.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | 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.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | 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ść C:\Windows
katalogu.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-LiteralPath
Określa ścieżkę do co najmniej jednej lokalizacji. Wartość Parametru 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 znaki pojedynczego cudzysłowu ('
). Znaki pojedynczego cudzysłowu informują program PowerShell, aby nie interpretował żadnych znaków jako sekwencji ucieczki.
Aby uzyskać więcej informacji, zobacz about_Quoting_Rules.
Type: | String[] |
Aliases: | PSPath, LP |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-PassThru
Zwraca obiekt reprezentujący przeniesiony element. Domyślnie to polecenie cmdlet nie generuje żadnego wyniku.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Path
Określa ścieżkę do bieżącej lokalizacji elementów. Ustawieniem domyślnym jest bieżący katalog. Dozwolone są symbole wieloznaczne.
Type: | String[] |
Position: | 0 |
Default value: | Current directory |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | True |
-WhatIf
Pokazuje, co się stanie po uruchomieniu polecenia cmdlet. Polecenie cmdlet nie zostało uruchomione.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | 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 PowerShell zawiera następujące aliasy dla Move-Item
programu :
Wszystkie platformy:
mi
move
W systemie Windows:
mv
To polecenie cmdlet przeniesie pliki między dyskami obsługiwanymi przez tego samego dostawcę, ale przeniesie katalogi tylko na tym samym dysku.
Move-Item
Ponieważ polecenie 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.