Udostępnij za pomocą


Move-Item

Przenosi element z jednej lokalizacji do innej.

Składnia

Path (Domyślna)

Move-Item
    [-Path] <String[]>
    [[-Destination] <String>]
    [-Force]
    [-Filter <String>]
    [-Include <String[]>]
    [-Exclude <String[]>]
    [-PassThru]
    [-Credential <PSCredential>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

LiteralPath

Move-Item
    [[-Destination] <String>]
    -LiteralPath <String[]>
    [-Force]
    [-Filter <String>]
    [-Include <String[]>]
    [-Exclude <String[]>]
    [-PassThru]
    [-Credential <PSCredential>]
    [-WhatIf]
    [-Confirm]
    [<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.

Uwaga / Notatka

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

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ązkowy: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ązkowy: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 lokalizacji, w której są przenoszone elementy. Wartość domyślna to bieżący katalog. Symbole wieloznaczne nie są dozwolone.

Aby zmienić nazwę przenoszonego 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:True
DontShow:False

Zestawy parametrów

(All)
Position:1
Obowiązkowy: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ązkowy: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ą wydajniejsze niż inne parametry, ponieważ dostawca stosuje je, gdy polecenie cmdlet pobiera obiekty zamiast filtrować obiekty 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ązkowy:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

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

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ązkowy: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ązkowy: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, LP

Zestawy parametrów

LiteralPath
Position:Named
Obowiązkowy: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 przeniesiony element. 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ązkowy: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 ścieżkę do bieżącej lokalizacji elementów. Wartość domyślna to bieżący katalog. Symbole wieloznaczne są dozwolone.

Właściwości parametru

Typ:

String[]

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

Zestawy parametrów

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

-WhatIf

Pokazuje, co się stanie, jeśli polecenie cmdlet zostanie uruchomione. Cmdlet nie jest 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ązkowy: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

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

  • Ponieważ polecenie Move-Item przenosi właściwości, zawartość i elementy podrzędne elementu, wszystkie ruchy są domyślnie rekursywne.

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