Copies specified files and directories to each specified destination using Robocopy.
- Specified sources, destinations, and robocopy options will be used to make copy operations.
- Both files and directories can be used as sources.
- Sources and destinations paths can either be local (e.g.
'C:\Folder'
), network (e.g.'\\ServerName\Folder'
), or relative from the working directory (e.g.'Folder\Subfolder'
).
Copy-Files can either be used as a standalone script, or as a module together with separate configuration scripts. The Standalone script allows for greater portability and isolation, while the module allows for greater accessibility, scalability and upgradability.
- Specify the sources, destinations, and robocopy options within the
Copy-Files.ps1
script. - Give the script a unique name.
- Run the script to copy the files and directories.
- Install the
Copy-Files.psm1
module. Refer to Microsoft's documentation on installing PowerShell modules. - Specify the sources, destinations, and robocopy options within the
Copy-Files-Config.ps1
script. - Give the configuration script a unique name.
- Run the script to copy the files and directories.
Multiple standalone or configuration scripts can be used to organize copying, with each script representing a batch of files and directories.
- Make as many copies of the standalone or configuration script as required.
- Give each script a unique name.
- Specify the sources, destinations, and robocopy options within each script.
- Run each script to copy their respective files and directories.
Example use of several scripts, each representing a separate batch of files and directories:
Copy-Files-Project1.ps1
Copy-Files-Project2.ps1
Copy-Files-Data1.ps1
Copy-Files-Data2.ps1
Copy-Files-Update.ps1
Copy-Files-Backup.ps1
- Right-click the script, and choose 'Run with PowerShell'.
- Run the script via a command line.
Powershell "C:\path\to\script.ps1"
Copy-Files scripts can be scheduled to automatically make copies of files and directories.
- Set up the script to be run.
- In Task Scheduler, create a task with the following Action:
- Action:
Start a program
- Program/script:
Powershell
- Add arguments (optional):
"C:\path\to\script.ps1"
- Action:
- Repeat the steps for each script that is to be scheduled.
Refer to Microsoft's documentation or guides for further help on using Task Scheduler.
Copy-Files [-Sources] <String[]> [-Destinations] <String[]> [[-RobocopyOptions] <String[]>] [<CommonParameters>]
PARAMETERS
-Sources <String[]>
-Destinations <String[]>
-RobocopyOptions <String[]>
<CommonParameters>
This cmdlet supports the common parameters: Verbose, Debug,
ErrorAction, ErrorVariable, WarningAction, WarningVariable,
OutBuffer, PipelineVariable, and OutVariable. For more information, see
about_CommonParameters (https://go.microsoft.com/fwlink/?LinkID=113216).
Runs the script Copy-Files-Project1.ps1
within the working directory in the current instance of Powershell.
.\Copy-Files-Project1.ps1
Runs the Copy-Files
module to copy file C:\Files\File.txt
and directory C:\Folder
into directory D:\BackupFolder
with robocopy options /E
and /PURGE
.
Copy-Files -Sources 'C:\Files\File.txt','C:\Folder' -Destinations 'D:\BackupFolder' -RobocopyOptions '/E','/PURGE'
Unverified scripts are restricted from running on Windows by default. In order to use Copy-Files
, you will need to allow the execution of unverified scripts. To do so, open PowerShell as an Administrator. Then run the command:
Set-ExecutionPolicy Unrestricted -Force
If you wish to revert the policy, run the command:
Set-ExecutionPolicy Undefined -Force
- Copy-Files serves as a wrapper around Robocopy as a convenient and automatable file and directory copying solution.
- Robocopy, otherwise known as Robust File Copy, is a command-line directory and/or file replication command in Windows.
- It is recommended you have some knowledge about and experience with Robocopy before using Copy-Files.
- For more information on Robocopy, refer to Microsoft's documentation on the command, or run
'robocopy /?'
.
- To quickly get the full path of a file or directory in File Explorer, simply Shift + Right-Click on the item and select 'Copy as path'.
- To quickly open a PowerShell instance from File Explorer, simply Shift + Right-Click on a directory or anywhere within it and select 'Open PowerShell window here'.
- Windows with PowerShell v3 or higher.