Rename-Item
Zmienia nazwę elementu w przestrzeni nazw dostawcy programu PowerShell.
Składnia
Rename-Item
[-Path] <String>
[-NewName] <String>
[-Force]
[-PassThru]
[-Credential <PSCredential>]
[-WhatIf]
[-Confirm]
[-UseTransaction]
[<CommonParameters>]
Rename-Item
-LiteralPath <String>
[-NewName] <String>
[-Force]
[-PassThru]
[-Credential <PSCredential>]
[-WhatIf]
[-Confirm]
[-UseTransaction]
[<CommonParameters>]
Opis
Polecenie Rename-Item
cmdlet zmienia nazwę określonego elementu. To polecenie cmdlet nie ma wpływu na zawartość zmienianej nazwy elementu.
Nie można użyć Rename-Item
polecenia , aby przenieść element, na przykład określając ścieżkę wraz z nową nazwą. Aby przenieść i zmienić nazwę elementu, użyj Move-Item
polecenia cmdlet .
Przykłady
Przykład 1. Zmiana nazwy pliku
To polecenie zmienia nazwę pliku daily_file.txt
na monday_file.txt
.
Rename-Item -Path "c:\logfiles\daily_file.txt" -NewName "monday_file.txt"
Przykład 2. Zmienianie nazwy i przenoszenie elementu
Nie można użyć Rename-Item
polecenia , aby zmienić nazwę i przenieść element. W szczególności nie można podać ścieżki dla wartości parametru NewName , chyba że ścieżka jest identyczna ze ścieżką określoną w parametrze Path . W przeciwnym razie dozwolona jest tylko nowa nazwa.
Rename-Item -Path "project.txt" -NewName "d:\archive\old-project.txt"
Rename-Item : can't rename because the target specified represents a path or device name.
At line:1 char:12
+ Rename-Item <<<< -path project.txt -NewName d:\archive\old-project.txt
+ CategoryInfo : InvalidArgument: (:) [Rename-Item], PS> Move-Item -Path "project.txt" -De
stination "d:\archive\old-project.txt"
W tym przykładzie podjęto próbę project.txt
zmiany nazwy pliku w bieżącym katalogu na D:\Archive
old-project.txt
w katalogu . Wynikiem jest błąd wyświetlany w danych wyjściowych.
Move-Item
Zamiast tego użyj polecenia cmdlet .
Przykład 3. Zmiana nazwy klucza rejestru
W tym przykładzie zmieniono nazwę klucza rejestru z Reklamy na Marketing. Po zakończeniu wykonywania polecenia nazwa klucza zostanie zmieniona, ale wpisy rejestru w kluczu pozostają niezmienione.
Rename-Item -Path "HKLM:\Software\MyCompany\Advertising" -NewName "Marketing"
Przykład 4. Zmiana nazwy wielu plików
W tym przykładzie zmieniono nazwy wszystkich *.txt
plików w bieżącym katalogu na *.log
.
Get-ChildItem *.txt
Directory: C:\temp\files
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 10/3/2019 7:47 AM 2918 Friday.TXT
-a---- 10/3/2019 7:46 AM 2918 Monday.Txt
-a---- 10/3/2019 7:47 AM 2918 Wednesday.txt
Get-ChildItem *.txt | Rename-Item -NewName { $_.Name -replace '.txt','.log' }
Get-ChildItem *.log
Directory: C:\temp\files
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 10/3/2019 7:47 AM 2918 Friday.log
-a---- 10/3/2019 7:46 AM 2918 Monday.log
-a---- 10/3/2019 7:47 AM 2918 Wednesday.log
Polecenie Get-ChildItem
cmdlet pobiera wszystkie pliki w bieżącym folderze, które mają .txt
rozszerzenie pliku, a następnie potokuje je do Rename-Item
. Wartość NewName to blok skryptu uruchamiany przed przesłaniem wartości do parametru NewName.
W bloku skryptu zmienna automatyczna $_
reprezentuje każdy obiekt pliku, jeśli chodzi o polecenie za pośrednictwem potoku. Blok skryptu -replace
używa operatora , aby zastąpić rozszerzenie pliku każdego pliku ciągiem .log
. Zwróć uwagę, że dopasowywanie przy użyciu -replace
operatora nie uwzględnia wielkości liter.
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 |
-Force
Wymusza polecenie cmdlet zmiany nazw elementów, których nie można zmienić, takich jak ukryte lub tylko do odczytu pliki lub aliasy lub zmienne tylko do odczytu. Polecenie cmdlet nie może zmienić aliasów stałych ani zmiennych. Implementacja różni się od dostawcy do dostawcy. Aby uzyskać więcej informacji, zobacz about_Providers.
Nawet przy użyciu parametru Force polecenie cmdlet nie może zastąpić ograniczeń zabezpieczeń.
Typ: | SwitchParameter |
Position: | Named |
Domyślna wartość: | False |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-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 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 |
-NewName
Określa nową nazwę elementu. Wprowadź tylko nazwę, a nie ścieżkę i nazwę. Jeśli wprowadzisz ścieżkę, która różni się od ścieżki określonej w parametrze Ścieżka , Rename-Item
wygeneruje błąd.
Aby zmienić nazwę i przenieść element, użyj polecenia Move-Item
.
Nie można używać symboli wieloznacznych w wartości parametru NewName . Aby określić nazwę wielu plików, użyj operatora Replace w wyrażeniu regularnym. Aby uzyskać więcej informacji na temat operatora Replace, zobacz about_Comparison_Operators.
Typ: | String |
Position: | 1 |
Domyślna wartość: | None |
Wymagane: | True |
Akceptowanie danych wejściowych potoku: | True |
Akceptowanie symboli wieloznacznych: | False |
-PassThru
Zwraca obiekt reprezentujący element do potoku. 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ę elementu do zmiany nazwy.
Typ: | String |
Position: | 0 |
Domyślna wartość: | None |
Wymagane: | True |
Akceptowanie danych wejściowych potoku: | True |
Akceptowanie symboli wieloznacznych: | False |
-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 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
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 zmieniony element.
Uwagi
Program Windows PowerShell zawiera następujące aliasy dla programu Rename-Item
:
ren
rni
Rename-Item
jest przeznaczony 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.