Move-Item

Dez 18, 2021
Modul: Microsoft.PowerShell.Management

Verschiebt ein Element von einem Speicherort an einen anderen.

Syntax

Beschreibung

Das Cmdlet Move-Item verschiebt ein Element, einschließlich seiner Eigenschaften, Inhalte und untergeordneten Elemente, von einem Speicherort an einen anderen. Es kann beispielsweise eine Datei oder ein Unterverzeichnis von einem Verzeichnis in ein anderes verschieben oder einen Registrierungsunterschlüssel von einem Schlüssel in einen anderen verschieben.Wenn Sie ein Element verschieben, wird es am neuen Speicherort hinzugefügt und am ursprünglichen Speicherort gelöscht.

Beispiele

Beispiel 1: Eine Datei in ein anderes Verzeichnis verschieben und umbenennen

Dieser Befehl verschiebt die Datei Test.txt vom Laufwerk C: in das Verzeichnis E:\Temp und benennt sie von test.txt in tst.txt um.

Move-Item -Path C:\test.txt -Destination E:\Temp\tst.txt

Beispiel 2: Verschieben eines Verzeichnisses und seines Inhalts in ein anderes Verzeichnis

Dieser Befehl verschiebt das Verzeichnis C:\Temp und seinen Inhalt in das Verzeichnis C:\Logs Das Verzeichnis „Temp“ und alle seine Unterverzeichnisse und Dateien erscheinen dann im Verzeichnis „Logs“.

Move-Item -Path C:\Temp -Destination C:\Logs

Beispiel 3: Alle Dateien mit einer bestimmten Erweiterung aus dem aktuellen Verzeichnis in ein anderes Verzeichnis verschieben

Dieser Befehl verschiebt alle Textdateien (*.txt) im aktuellen Verzeichnis (dargestellt durch einen Punkt (.)) in das Verzeichnis C:\Logs.

Move-Item -Path .\*.txt -Destination C:\Logs

Beispiel 4: Rekursives Verschieben aller Dateien mit einer bestimmten Erweiterung aus dem aktuellen Verzeichnis in ein anderes Verzeichnis

Dieser Befehl verschiebt alle Textdateien aus dem aktuellen Verzeichnis und allen Unterverzeichnissen rekursiv in das Verzeichnis „C:\TextFiles“.

Get-ChildItem -Path ".\*.txt" -Recurse | Move-Item -Destination "C:\TextFiles"

Der Befehl verwendet das Cmdlet Get-ChildItem, um alle untergeordneten Elemente im aktuellen Verzeichnis (durch den Punkt dargestellt) und seinen Unterverzeichnissen abzurufen, die eine „.Der Befehl verwendet den Recurse-Parameter, um den Abruf rekursiv zu gestalten, und den Include-Parameter, um den Abruf auf „.txt“-Dateien zu beschränken.

Der Pipelineoperator (|) sendet die Ergebnisse dieses Befehls an Move-Item, der die Textdateien in das Verzeichnis „TextFiles“ verschiebt.

Wenn Dateien, die nach „C:\Textfiles“ verschoben werden sollen, denselben Namen haben, zeigt Move-Item eine Fehlermeldung an und fährt fort, verschiebt aber nur eine Datei mit jedem Namen nach „C:\Textfiles“.Die anderen Dateien verbleiben in ihren ursprünglichen Verzeichnissen.

Wenn das Verzeichnis „Textfiles“ (oder ein anderes Element des Zielpfads) nicht vorhanden ist, schlägt derBefehl fehl.Das fehlende Verzeichnis wird nicht für Sie erstellt, selbst wenn Sie den Force-Parameter verwenden.Move-Item verschiebt das erste Element in eine Datei mit dem Namen „Textfiles“ und zeigt dann eine Fehlermeldung an, die erklärt, dass die Datei bereits vorhanden ist.

Außerdem verschiebt Get-ChildItem standardmäßig keine versteckten Dateien.Um versteckte Dateien zu verschieben, verwenden Sie den Force-Parameter mit Get-ChildItem.

Hinweis

In Windows PowerShell 2.0 muss der Wert des Path-Parameters ein Container sein, wenn der Recurse-Parameter des Cmdlets Get-ChildItem verwendet wird.

Beispiel 5: Registrierungsschlüssel und -werte in einen anderen Schlüssel verschieben

Dieser Befehl verschiebt die Registrierungsschlüssel und -werte im Registrierungsschlüssel „MyCompany“ inHKLM\Software in den Schlüssel „MyNewCompany“.Das Platzhalterzeichen (*) gibt an, dass der Inhalt des Schlüssels „MyCompany“ verschoben werden soll, nicht der Schlüssel selbst.

Move-Item "HKLM:\software\mycompany\*" "HKLM:\software\mynewcompany"

Beispiel 6: Verschieben eines Verzeichnisses und seines Inhalts in ein Unterverzeichnis des angegebenen Verzeichnisses

Dieser Befehl verschiebt das Verzeichnis „Logs“ (und seinen Inhalt) in das Verzeichnis „Logs“.

Move-Item -LiteralPath 'Logs' -Destination 'Logs'

Der Parameter „LiteralPath“ wird anstelle von „Path“ verwendet, da der ursprüngliche Verzeichnisname linke und rechte Klammerzeichen („“) enthält.Der Pfad wird außerdem in einfache Anführungszeichen (‚ ‚) gesetzt, damit das Backtick-Symbol (`) nicht falsch interpretiert wird.

Für den Parameter „Destination“ ist kein wörtlicher Pfad erforderlich, da die Variable „Destination“ ebenfalls in einfache Anführungszeichen eingeschlossen werden muss, da sie Klammern enthält, die falsch interpretiert werden können.

Parameter

-Bestätigung

Für die Ausführung des Cmdlets werden Sie zur Bestätigung aufgefordert.

Typ: SwitchParameter
Aliases: cf
Position: Benannt
Standardwert: False
Akzeptiere Pipeline-Eingabe: False
Accept wildcard characters: False
-Credential

Hinweis

Dieser Parameter wird von keinem mit PowerShell installierten Anbieter unterstützt.Verwenden Sie Invoke-Command, um einen anderen Benutzer zu verkörpern oder Ihre Anmeldeinformationen zu erhöhen, wenn Sie dieses Cmdlet ausführen.

Typ: PSCredential
Position: Benannt
Standardwert: Aktueller Benutzer
Pipelineeingabe akzeptieren: True
Accept wildcard characters: False

-Destination

Spezifiziert den Pfad zu dem Ort, an den die Elemente verschoben werden.Die Vorgabe ist das aktuelle Verzeichnis.Wildcards sind zulässig, aber das Ergebnis muss einen einzelnen Speicherort angeben.

Um das zu verschiebende Element umzubenennen, geben Sie einen neuen Namen im Wert des Zielparameters an.

Typ: String
Position: 1
Standardwert: Aktuelles Verzeichnis
Akzeptiere Pipeline-Eingabe: True
Accept wildcard characters: True
-Exclude

Gibt als Zeichenfolgenarray ein oder mehrere Elemente an, die dieses Cmdlet bei dem Vorgang ausschließt. Der Wert dieses Parameters qualifiziert den Path-Parameter. Geben Sie ein Pfadelement oder Muster ein, z. B.*.txt. Platzhalterzeichen sind zulässig. Der Exclude-Parameter ist nur wirksam, wenn der Befehl den Inhalt eines Elements enthält, z. B. C:\Windows\*, wobei das Platzhalterzeichen den Inhalt des Verzeichnisses C:\Windows angibt.

Typ: Zeichenkette
Position: Benannt
Standardwert: Keine
Akzeptiere Pipeline-Eingabe: False
Accept wildcard characters: True
-Filter

Spezifiziert einen Filter zur Qualifizierung des Path-Parameters. Der FileSystemprovider ist der einzige installierte PowerShell-Anbieter, der die Verwendung von Filtern unterstützt. Die Syntax für die FileSystem-Filtersprache finden Sie unter about_Wildcards.Filter sind effizienter als andere Parameter, da der Anbieter sie anwendet, wenn der Cmdlet die Objekte abruft, anstatt PowerShell die Objekte filtern zu lassen, nachdem sie abgerufen wurden.

Typ: String
Position: Benannt
Standardwert: Keine
Akzeptiere Pipelineeingabe: False
Accept wildcard characters: True
-Force

Zwingt den Befehl zur Ausführung, ohne den Benutzer um Bestätigung zu bitten.Die Implementierung variiert von Anbieter zu Anbieter, weitere Informationen finden Sie unter about_Providers.

Typ: SwitchParameter
Position: Benannt
Standardwert: False
Akzeptiere Pipelineeingabe: False
Accept wildcard characters: False
-Include

Gibt als Zeichenfolgenarray ein Element oder mehrere Elemente an, die dieses Cmdlet in den Vorgang einschließt. Der Wert dieses Parameters qualifiziert den Path-Parameter. Geben Sie ein Pfadelement oder -muster ein, z. B."*.txt". Platzhalterzeichen sind zulässig. Der Include-Parameter ist nur wirksam, wenn der Befehl den Inhalt eines Elements einschließt, z. B. C:\Windows\*, wobei das Platzhalterzeichen den Inhalt des Verzeichnisses C:\Windows angibt.

Typ: Zeichenkette
Position: Benannt
Standardwert: Keine
Akzeptieren von Pipelineeingaben: False
Accept wildcard characters: True
-LiteralPath

Spezifiziert einen Pfad zu einem oder mehreren Orten. Der Wert von LiteralPath wird genau so verwendet, wie er eingegeben wird. Es werden keine Zeichen als Platzhalter interpretiert. Wenn der Pfad Escape-Zeichen enthält, schließen Sie ihn in einfache Anführungszeichen ein. Durch einfache Anführungszeichen wird PowerShell angewiesen, keine Zeichen als Escape-Sequenzen zu interpretieren.

Weitere Informationen finden Sie unter about_Quoting_Rules.

Typ: String
Aliases: PSPath, LP
Position: Benannt
Standardwert: Keine
Akzeptiere Pipelineeingabe: True
Accept wildcard characters: False
-PassThru

Gibt ein Objekt zurück, das das Element darstellt, mit dem Sie arbeiten.Dieses Cmdlet erzeugt standardmäßig keine Ausgabe.

Typ: SwitchParameter
Position: Benannt
Standardwert: Falsch
Akzeptiere Pipelineeingabe: False
Accept wildcard characters: False
-Path

Spezifiziert den Pfad zum aktuellen Ort der Elemente.Der Standardwert ist das aktuelle Verzeichnis.Platzhalterzeichen sind zulässig.

Typ: Zeichenkette
Position: 0
Standardwert: Aktuelles Verzeichnis
Akzeptiere Pipelineeingabe: True
Accept wildcard characters: True
-WhatIf

Zeigt an, was bei Ausführung des Cmdlets passieren würde.Das Cmdlet wird nicht ausgeführt.

Typ: SwitchParameter
Aliases: wi
Position: Benannt
Standardwert: False
Akzeptiere Pipeline-Eingabe: False
Accept wildcard characters: False

Inputs

String

Sie können eine Zeichenkette, die einen Pfad enthält, über die Pipeline an dieses Cmdlet übergeben.

Ausgaben

Keine oder ein Objekt, das das verschobene Element darstellt

Wenn Sie den PassThru-Parameter verwenden, generiert dieses Cmdlet ein Objekt, das das verschobene Element darstellt, ansonsten generiert dieses Cmdlet keine Ausgabe.

Hinweise

  • Dieses Cmdlet verschiebt Dateien zwischen Laufwerken, die vom selben Anbieter unterstützt werden, aber es verschiebt Verzeichnisse nur innerhalb desselben Laufwerks.
  • Da ein Move-Item-Befehl die Eigenschaften, den Inhalt und die untergeordneten Elemente eines Elements verschiebt, sind alle Verschiebungen standardmäßig rekursiv.
  • Dieses Cmdlet ist so konzipiert, dass es mit den von jedem Anbieter bereitgestellten Daten arbeitet.Um die in Ihrer Sitzung verfügbaren Anbieter aufzulisten, geben Sie Get-PSProvider ein. Weitere Informationen finden Sie unter about_Providers.
  • Clear-Item
  • Copy-Item
  • Get-Item
  • Invoke-Item
  • New-Item
  • Remove-Item
  • Rename-Item
  • Set-Item
  • about_Providers

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.