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.

Permissions

When copying or moving a file (or folder) from a different volume, the file will inherit the permissions of the destination folder. A move is in effect a copy and then delete of the original.

When copying a file (or folder) from the same volume, the file will inherit the permissions of the destination folder.

When moving a file (or folder) from another folder on the same volume, the file will retain any directly applied permissions and will also inherit permissions from the destination folder. In this case no data is actually moved, you may notice that very large files will move instantaneously, all that has happened is that the entry in the NTFS Master File Table (MFT) has been changed.

Drive mappings do not alter this, if the files/folders are stored on the same volume, and accessed via the same file share, then a move between drive mappings will still behave as above. If you create separate file shares, then moves between those shares will behave like separate volumes.

  From the same Volume From a different Volume
COPY Destination Permissions Destination Permissions
MOVE Directly applied Source Permissions
+
Destination (Inherited permission only)
Destination Permissions

Standard Aliases for Move-Item: move, mv, mi

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 .docx files from the current directory (.) and all subdirectories and move them to a single directory:

PS C:\> Get-Childitem . -recurse -include *.docx | 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

“For my part, I travel not to go anywhere, but to go. I travel for travel's sake. The great affair is to move” ~ Robert Louis Stevenson

Related PowerShell Cmdlets

Clear-item - Remove content from a variable or an alias.
Copy-Item - Copy an item from a namespace location.
Get-item - Return an object that represents an item in a namespace.
Invoke-item - Invoke an executable or open a file (START).
New-item - Create a new item in a namespace.
Set-item - Set the value of a provider pathname.
Remove-item - Remove an item.
Rename-item - Change the name of an existing item.


 
Copyright © 1999-2026 SS64.com
Some rights reserved