Даже в самых маленьких фрагментах кода полезно структурировать ваш код с помощью отступов.Просто сделав это, я обнаружил ошибку: когда пользователь сценария решает ввести вторую папку для резервного копирования, сценарий не будет запрашивать местоположение резервной копии.Здесь:
if ($question -eq 'Y') {
$moreFolder = Read-Host "Enter second folder location"
}
else {
# variable 'backup' = the entered backup location
$backup = Read-Host -Prompt "Enter backup location"
}
Таким образом, вы должны удалить предложение else и получить что-то вроде этого:
$ErrorActionPreference = "Stop"
#If there is a error stop!
$theFolder = Read-Host -Prompt "Enter folder location you wish to backup"
# variable 'theFolder' = the entered file location.
$question = Read-Host -Prompt "Would you like to backup another folder? 'Y' or 'N'"
if ($question -eq 'Y') {
$moreFolder = Read-Host "Enter second folder location"
}
# variable 'backup' = the entered backup location
$backup = Read-Host -Prompt "Enter backup location"
# testing the path of both the folder and backup location
if ((Test-Path $theFolder) -and (Test-Path $backup)) {
Copy-Item -Path $theFolder\* -Destination $backup -Recurse
if (Test-Path $moreFolder) {
Copy-Item -path $moreFolder\* -Destination $backup -Recurse
}
}
Еще одно замечание: параметр -Recurse для Copy-Item предназначен для повторения черезструктура папок, чтобы не допустить вопросов типа «ты уверен».Для этого используется -Confirm: $ false