Move-Item to powershellowy cmdlet do przenoszenia plików i katalogów (a także innych elementów, np. kluczy rejestru) z jednej lokalizacji do drugiej. Pełni podwójną rolę: jeśli podasz inną nazwę docelową, posłuży też do zmiany nazwy — bo w PowerShell przenoszenie i rename to ta sama operacja widziana z dwóch stron. Ma swój alias move (oraz mi i mv), więc nie musisz za każdym razem wstukiwać pełnej nazwy.
Składnia i najważniejsze opcje
Podstawowa forma: Move-Item [-Path]
-Path— źródło, czyli co przenosisz. Akceptuje symbole wieloznaczne (*,?), więc złapiesz wiele plików naraz.-Destination— dokąd ma trafić. Jeśli wskażesz nazwę pliku zamiast folderu, dostaniesz przeniesienie połączone ze zmianą nazwy.-LiteralPath— ścieżka brana dosłownie, bez interpretacji znaków wieloznacznych. Ratunek dla nazw z[,]czy innymi metaznakami.-Force— nadpisuje istniejące pliki w celu i rusza elementy tylko-do-odczytu albo ukryte. Bez tego PowerShell potrafi się grzecznie zatrzymać.-Filter— filtr w składni dostawcy (np.*.log), wydajniejszy niż filtrowanie po pobraniu listy.-Include/-Exclude— dokładają lub odrzucają elementy wg wzorca, np. tylko*.txt.-PassThru— zwraca obiekt przeniesionego elementu (domyślnie cmdlet milczy).-WhatIf/-Confirm— symulacja bez ruszania plików oraz pytanie o potwierdzenie. Twój pas bezpieczeństwa.
Przykłady użycia
Move-Item -Path C:\raporty\raport.txt -Destination D:\archiwum\— przenosi jeden plik do innego katalogu, nazwa bez zmian.Move-Item -Path C:\logi\*.log -Destination C:\archiwum\logi\— przenosi wszystkie pliki.logjednym poleceniem.Move-Item -Path .\stara_nazwa.txt -Destination .\nowa_nazwa.txt— przenosi i przy okazji zmienia nazwę pliku.Move-Item -Path C:\dane\plik.csv -Destination D:\backup\plik.csv -Force— nadpisuje istniejący plik w celu bez pytania.Get-ChildItem C:\pobrane -Filter *.pdf | Move-Item -Destination C:\dokumenty\pdf\— łapie wszystkie PDF-y i wpuszcza je do cmdletu przez potok.
Częste błędy i pułapki
Nadpisywanie bez ostrzeżenia. Z -Force plik w celu znika bezpowrotnie — kosza tu nie ma. Zanim odpalisz operację na produkcji, przetestuj ją z -WhatIf.
Przenoszenie między dyskami a uprawnienia. Ruch w obrębie jednego wolumenu to szybka zmiana wpisu w katalogu; przeniesienie na inny dysk to realne kopiowanie plus usunięcie źródła — przy dużych folderach trwa i może paść w połowie.
Nazwy ze znakami specjalnymi. Plik z nawiasami kwadratowymi w nazwie potrafi nie zostać znaleziony, bo -Path traktuje je jak wzorzec. Użyj wtedy -LiteralPath.
Zajęty plik. Jeśli coś trzyma uchwyt do pliku (otwarty edytor, działający proces), dostaniesz błąd dostępu — zamknij program i spróbuj ponownie.
Powiązane komendy: Copy-Item (kopiowanie zamiast przenoszenia), Rename-Item (sama zmiana nazwy), Remove-Item (usuwanie), Get-ChildItem (listowanie do potoku). W CMD odpowiednikiem jest move, a w świecie Linuksa mv.