Udostępnij za pośrednictwem


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] 
      [<CommonParameters>]
Rename-Item
      -LiteralPath <String>
      [-NewName] <String>
      [-Force]
      [-PassThru]
      [-Credential <PSCredential>]
      [-WhatIf]
      [-Confirm] 
      [<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"

Ten przykład próbuje zmienić nazwę project.txt pliku w bieżącym katalogu na old-project.txt w D:\Archive 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 są 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-Itemfolderu . Wartość NewName to blok skryptu uruchamiany przed przesłania 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 używa -replace operatora , aby zastąpić rozszerzenie pliku każdego pliku ..log Zwróć uwagę, że dopasowanie przy użyciu -replace operatora nie uwzględnia wielkości liter.

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

-Force

Wymusza zmianę nazw elementów, których nie można zmienić w inny sposób, takich jak ukryte lub tylko do odczytu pliki albo aliasy lub zmienne tylko do odczytu. Polecenie cmdlet nie może zmienić stałych aliasów 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ń.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters: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 je ująć w pojedynczy cudzysłów. 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

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

Type:String
Position:1
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-PassThru

Zwraca obiekt reprezentujący element potoku. 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ę elementu do zmiany nazwy.

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-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

String

Możesz potokować ciąg zawierający ścieżkę do tego polecenia cmdlet.

Dane wyjściowe

None or an object that represents the renamed item.

To polecenie cmdlet generuje obiekt, który reprezentuje zmieniony element, jeśli określisz parametr PassThru . W przeciwnym razie to polecenie cmdlet nie generuje żadnych danych wyjściowych.

Uwagi

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.