Всегда создавайте свой скрипт по одному шагу за раз и проверяйте, что вы получаете то, что ожидаете.
Например. Почему вы используете одну и ту же переменную для двух разных целей?
$MoveFolderLocation = '.\Move_Folder_Input.csv'
$MoveFolderLocation = Read-Host "Where is the folder list file?"
Вы перезаписываете одну на другую, а последняя выигрывает.
Я согласен с Тео в этом Хост вещь. Мое правило по умолчанию для Dev / Script # 1:
- 'Все вводные данные являются злыми, пока они не будут полностью проверены, независимо от того, откуда они поступают.'
Итак, измените что Read-Host для чего-то вроде.
($FileBrowser = New-Object System.Windows.Forms.OpenFileDialog -Property @{
InitialDirectory = [Environment]::GetFolderPath('MyDocuments')
}).ShowDialog() | Out-Null
$FileBrowser.FileName
Даже при усилиях браузера вам все равно необходимо учитывать файлы / папки с пробелами, специальные символы и т. д. c. иметь дело с этим.