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.
Syntax
Copy-item [[-path] | [-literalPath] ] string[]
[[-destination] string[]] [-container] [-recurse] [-force]
[-incude string[] ] [-exclude string[] ]
[-filter string] [-passThru] [-credential PSCredential]
[-whatIf] [-confirm] [-UseTransaction] [CommonParameters]
key
-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.
-container
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.
-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.
-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.
-passThru
Pass the object through the pipeline. By default, copy-item does not generate any output.
-recurse
include sub-folders/subkeys.
-whatIf
Describe what would happen if you executed the command without actually
executing the command.
-confirm
Prompt for confirmation before executing the command.
-UseTransaction
Include the command in the active transaction.
CommonParameters:
-Verbose, -Debug, -ErrorAction, -ErrorVariable, -WarningAction, -WarningVariable,
-OutBuffer -OutVariable.
Standard Aliases for Copy-Item: copy, cp, cpi
Examples
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:
C:\PS> 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.