Move-Item
Move an item from one location to another.
Syntax
Move-Item { [-path] string[] | [-literalPath] string[] }
[[-destination] string]
[-include string[]] [-exclude string[]]
[-filter string] [-force] [-credential PSCredential] [-PassThru]
[-Confirm] [-WhatIf] [-UseTransaction] [CommonParameters]
Key
-path string
The path(s) to the items. Wildcards are permitted.
Use a dot (.) to specify the current location. The default is the current directory.
Use the wildcard (*) to specify all items in the current location.
-literalPath string
Like Path above, only the value is used exactly as typed.
No characters are interpreted as wildcards. If the path includes any
escape characters then enclose the path in single quotation marks.
-destination
The path to the location where the items are to be moved.
(default = current directory)
Wildcards are permitted, but the result must specify a single location.
To rename the item being moved, specify a new name in the value of Destination.
-include string
Include only the specified items from the Path. e.g. "May*"
this only works when the path includes a wildcard character.
-exclude string
Omit the specified items from the Path e.g. "*SS64*"
this only works when the path includes a wildcard character.
-filter string
A filter in the provider's format or language.
The exact syntax of the filter (wildcard support etc) depends on the provider.
Filters are more efficient than -include/-exclude, because the provider
applies the filter when retrieving the objects, rather than having
PowerShell filter the objects after they are retrieved.
-force
Override restrictions that prevent the command from succeeding, apart
from security settings. e.g. Force will create file path directories
or override a files read-only attribute, but will not change file permissions.
-passThru
Pass the object created by this cmdlet through the pipeline.
-credential PSCredential
Use a credential to validate access to the file. Credential represents
a user-name, such as "User01" or "Domain01\User64", or a PSCredential
object, such as the one retrieved by using the Get-Credential cmdlet.
If you type a user name, you will be prompted for a password.
This parameter is not supported by any PowerShell core cmdlets or providers.
-confirm
Prompt for confirmation before executing the command.
-whatIf
Describe the command without actually executing it.
-UseTransaction
Include the command in the active transaction.
CommonParameters:
-Verbose, -Debug, -ErrorAction, -ErrorVariable, -WarningAction, -WarningVariable,
-OutBuffer -OutVariable.
Examples
Move and rename a file:
PS C:\> Move-Item -path C:\SS64.txt -destination E:\work\tst.txt
Move a directory, and all of its subdirectories and files:
PS C:\> Move-Item -path C:\Temp -destination C:\Logs
Move all the .TXT files in the current directory, represented by a dot (.)
PS C:\> Move-Item -path .\*.txt -destination C:\Logs
Use Get-Childitem to retrieve all .doc files from the current directory (.) and all subdirectories and move them to a single directory:
PS C:\> Get-Childitem . -recurse -include *.doc | move-item -dest C:\mydocs
If any of the files being moved share the same name, Move-Item will display an error and continue, but will move only one file with each name, the other files remain in their original directories.
By default, Get-Childitem will not select hidden files unless you specify -Force
Move registry keys and values:
PS C:\> Move-Item hklm:\software\SS64\* hklm:\software\TEST
The wildcard (*) indicates that the contents of the SS64 key should be moved, but not the key itself.
Move a directory name that includes bracket characters:
PS C:\> Move-Item -literalpath 'C:\folder_with[reserved`chars]' -destination C:\myDocs