Copy an item from one location to another within a namespace. Copy files and directories with the FileSystem provider or registry keys and registry entries with the Registry provider.

      Copy-item [[-path] | [-literalPath] ] string[]
         [[-destination] string[]] [-container] [-recurse] [-force]
            [-incude string[] ] [-exclude string[] ]
               [-filter string] [-passThru]  [-credential PSCredential]
                  [-whatIf] [-confirm] [-UseTransaction] [CommonParameters]
   -path string
       The items to copy, Wildcards are permitted.

   -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 string
       Where the items are to be copied.

       Preserve container objects during the copy (this is set by default).

   -include string
       Copy only the specified items excludng all others
       even if they exist in the path e.g. -include *.txt
   -exclude string
       Omits the specified items from the Path e.g. "*SS64*"

   -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 exclude or include the objects after they are retrieved.

       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.

   -credential PSCredential
       Uses a credential to validate access to the file. Credential represents
       a user-name, such as "User01" or "Domain01\User01", or a PSCredential
       object, such as the one retrieved using Get-Credential.
       This parameter appears, but it is not yet supported in any PowerShell core 
       cmdlets or providers.

       Pass the object through the pipeline. By default, copy-item does not generate any output.

       include sub-folders/subkeys.

       Describe what would happen if you executed the command without actually
       executing the command.

       Prompt for confirmation before executing the command.

       Include the command in the active transaction.

Standard Aliases for Copy-Item: copy, cp, cpi


Copy a file into the C:\SS64\ directory:

PS C:\> Copy-Item C:\temp\demo.txt -destination C:\SS64

Copy the entire contents of the work folder into the backup\June folder:

PS C:\> Copy-Item C:\work -destination C:\backup\June -recurse

The -recurse option ensures any subdirectories will be copied intact. The -container parameter is set to true by default, this preserves the directory structure. The June folder will be created if it does not already exist.

"Replicants are like any other machine. They're either a benefit or a hazard.
If they're a benefit, it's not my problem" ~ Deckard (Blade Runner)

Related PowerShell Cmdlets

Test-Path - Return true if the path/file exists.
Clear-item - Remove content from a variable or an alias.
Get-item - Return an object that represents an item in a namespace.
invoke-item - Invoke an executable or open a file (START).
Move-item - Move an item from one location to another.
New-item - Create a new item in a namespace.
Set-item - Set the value of a provider pathname.
Set-Content - Write or replace the content in an item & can change the file encoding.
Remove-item - Remove an item.
Rename-item - Change the name of an existing item.
Get-Help - about_namespace.
Equivalent bash commands: cp - Copy files.

Copyright © 1999-2024
Some rights reserved