Udostępnij za pośrednictwem


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 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 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 są wyświetlane w Logs katalogu.

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 () w bieżącym katalogu (*.txtreprezentowanym przez kropkę (.)) do C:\Logs 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 , 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 TextFiles katalogu.

Jeśli pliki, które mają zostać przeniesione, mają C:\Textfiles taką samą nazwę, Move-Item wyświetla błąd i kontynuuje, 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 Get-ChildItem.

Uwaga

W programie Windows PowerShell 2.0 w przypadku używania 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 HKLM\Software kluczu MyCompany MyNewCompany rejestru do klucza . Symbol wieloznaczny (*) wskazuje, że zawartość MyCompany klucza 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 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 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 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.

Typ:SwitchParameter
Aliasy:cf
Position:Named
Domyślna wartość:False
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych: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.

Typ:PSCredential
Position:Named
Domyślna wartość:Current user
Wymagane:False
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:False

-Destination

Określa ścieżkę do lokalizacji, w której są przenoszone elementy. Domyślnie jest to katalog bieżący. Symbole wieloznaczne nie są dozwolone.

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ść C:\Windows katalogu.

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ż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ą 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ść C:\Windows katalogu.

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 co najmniej jednej lokalizacji. Wartość LiterałuPath 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 ('). 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, LP
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. Domyślnie jest to katalog bieżący. 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

-WhatIf

Pokazuje, co się stanie po uruchomieniu polecenia cmdlet. Polecenie cmdlet nie zostało uruchomione.

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

String

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.

PSObject

Jeśli używasz parametru PassThru , to polecenie cmdlet zwraca obiekt reprezentujący przeniesiony element.

Uwagi

Program PowerShell zawiera następujące aliasy dla programu Move-Item:

  • Wszystkie platformy:

    • mi
    • move
  • 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.