У меня есть ниже сценарий:Powershell - Copy Loop Script
function copyUserSettings {
Write-Host
$copyFrom = Read-Host 'Which Folders Do You Want To Copy FROM?'
Write-Host
$copyTo = Read-Host 'Which Folders Do You Want To Copy TO? (Enter a Number OR Range eg. 12-18)'
Write-Host
IF ($copyTo.Contains("-")) {
$copyToStart = $copyTo.Split("-")[0]
$copyToEnd = $copyTo.Split("-")[1]
$copyToStart..$copyToEnd | foreach{
Copy-Item -Path $rootPath\FOLDER\$copyFrom\US*.DAT -Destination $rootPath\FOLDER\$_
}
} else {
Copy-Item -Path $rootPath\FOLDER\$copyFrom\US*.DAT -Destination $rootPath\FOLDER\$copyTo
}
}
Пользователь должен ввести куда копировать файлы из (все имена папок просто номер), и куда копировать файлы (также просто число), введя имя одной папки или диапазон (например, 12-18). Если я введу один номер, приведенный выше сценарий работает правильно, но если я введу диапазон, файлы не будут копироваться, и я не получу никакой обратной связи или чего-либо еще.
Редактировать 1: $rootPath
определено ранее в скрипте. Edit2: Измененный код выше для предложения @ tnw.
Заранее за вашу помощь. Если вам нужна дополнительная информация, пожалуйста, дайте мне знать.
Спасибо за ваш вклад. Я изменил свой сценарий с вашими предложениями и нашел где-то дополнительный кронштейн. Но, к сожалению, он по-прежнему производит такое же поведение. Очень странно. – Lawivido
@Fro Вы сохранили свой сценарий? : D просто проверяю. Пожалуйста, дважды и тройной проверьте свои скобки ... как у вас было это, ваш 'else' был INSIDE ваш' if' ...который даже не имеет смысла! – tnw
Да, я сохранил его: D Также изменил сценарий в исходном вопросе, чтобы вы могли видеть, где он сейчас. – Lawivido