PowerShell Application Deployment Toolkit is a tool very powerful to manage files and folders:
- Check if a file exists
- Copy or move a single file or a group of files (from the package or from the system)
- Copy some files recursively in all existing user profiles
- Create, copy or deletes folders, sub-folders and content
1. Files
1.1 Check if a File Exists
## Check if a file exists Write-Log "----- Check if the file C:\Workdir\MyFile.exe exists -----" If (Test-Path 'C:\Workdir\MyFile.exe') { Write-Host 'The file exists' } Else { Write-Host 'The file does not exists' }
1.2 Single File Copy
## Single File Copy (from system) Write-Log "----- Copy the file C:\Program Files\MyApp\MyApp.ini in C:\Backup -----" Copy-File -Path 'C:\Program Files\MyApp\MyApp.ini' -Destination 'C:\Backup\MyApp.ini' ## Single File Copy (from package) Write-Log "----- Copy the file MyApp.ini in C:\Backup -----" Copy-File -Path "$dirFiles\MyApp.ini" -Destination 'C:\Backup\MyApp.ini'
1.3 All Files Copy
## All Files Copy Write-Log "----- Copy all the files of C:\Program Files\MyApp in C:\Backup -----" Copy-File -Path 'C:\Program Files\MyApp\*.*' -Destination 'C:\Backup'
1.4 Copy Files in All Existing User Profiles
## Copy file in all existing user profiles $ProfilePaths = Get-UserProfiles | Select-Object -ExpandProperty 'ProfilePath' ForEach ($Profile in $ProfilePaths) { Write-Log -Message "-------------- Copying files to $Profile --------------" Copy-File -Path "$dirFiles\MyFile.txt" -Destination "$Profile\AppData\Roaming\Editor\Application\MyFile.txt" -ContinueOnError $true }
2. Folders
2.1 Create Folder
## Create folder Write-Log "----- Creating the folder My_New_Folder -----" New-Folder -Path "$envWinDir\System32\My_New_Folder"
2.2 Copy Folder
## Folder and subfolders copy Write-Log "----- Copy the folder C:\Program Files\MyApp in C:\Backup -----" Copy-Item 'C:\Program Files\MyApp' 'C:\Backup\MyApp' -recurse
2.3 Delete Folder
## Delete folder and its content Write-Log "----- Deleting the folder My_Folder and its content -----" Remove-Folder -Path "$envWinDir\Temp\My_Folder"