Строка не может объединиться в PowerShell

[Обратите внимание, что это репост вопроса, который не смог продемонстрировать проблему, так как он использовал только фрагменты моего фактического кода. Это реальный код, и он определенно не работает в моей системе]

Я пытаюсь добавить имя файла в конец предопределенного пути в PowerShell v1.0, но путь не добавляется заранее.

Set-PSDebug -Trace 2

## Configure here
    $sourceFolder = "C:\Users\myusername\Desktop\Folder 1"
    $fileFilter = "*.ext"
    $destinationFolder = "C:\Folder 2"
    $logFile = "C:\Users\myusername\Desktop\ofp_dupe_log.txt"


### Add an entry to log file to say started script
    $logline = "`n`n############################################################`n$(Get-Date), ext_dupe script started`nWatching: $sourceFolder`nDestination 1: $destinationFolder1`nDestination 2: $destinationFolder2`n############################################################"
    Add-content $logFile -value $logline

### SET FOLDER TO WATCH + FILES TO WATCH + SUBFOLDERS YES/NO
    $watcher = New-Object System.IO.FileSystemWatcher
    $watcher.Path = $sourceFolder
    $watcher.Filter = $fileFilter
    $watcher.IncludeSubdirectories = $false
    $watcher.EnableRaisingEvents = $true  

### DEFINE ACTIONS AFTER AN EVENT IS DETECTED
    $action = { $path = $Event.SourceEventArgs.FullPath
                $changeType = $Event.SourceEventArgs.ChangeType

                $source_file = Split-Path $path -leaf
                $destinationFile = $destinationFolder+"\"+$source_file

                $logline = "$(Get-Date), $changeType, $path`ndest1: $destinationFile"
                Add-content "C:\Users\myusername\Desktop\ofp_dupe_log.txt" -value $logline
              }    
### DECIDE WHICH EVENTS SHOULD BE WATCHED 
    Register-ObjectEvent $watcher "Created" -Action $action
    Register-ObjectEvent $watcher "Changed" -Action $action
    Register-ObjectEvent $watcher "Deleted" -Action $action
    Register-ObjectEvent $watcher "Renamed" -Action $action
    while ($true) {sleep 5}

Я не вижу, что не так, но мой файл logFile.txt показывает только:

############################################################
07/31/2019 17:09:47, ext_dupe script started
Watching: C:\Users\myusername\Desktop\Folder 1
Destination 1: 
Destination 2: 
############################################################
07/31/2019 17:09:52, Changed, C:\Users\myusername\Desktop\Folder 1\match1.ext
dest1: \match1.ext
07/31/2019 17:09:52, Changed, C:\Users\myusername\Desktop\Folder 1\match1.ext
dest1: \match1.ext

т.е. строка $ destinationFolder не имеет префикса перед именем файла.

ПРИМЕЧАНИЕ. Людям, которые задаются вопросом, использую ли я PowerShell v1.0, я основываю это утверждение на том факте, что в окне свойств оболочки PS отображается v.10 в пути. Это работает под управлением Nuder Win10. Увидеть ниже:

Свойства PowerShell


person Fat Monk    schedule 31.07.2019    source источник
comment
Вы находитесь внутри блока сценария, когда $destinationFile создается и ссылается на $destinationFolder извне блока сценария. Область блока скрипта ничего не знает об этой переменной.   -  person AdminOfThings    schedule 31.07.2019
comment
Если вы не используете XP, я очень сомневаюсь, что вы используете Powershell 1.0   -  person Maximilian Burszley    schedule 31.07.2019
comment
Похоже, в таком случае мне нужно прочитать об области видимости переменных в аду Пауэрса.   -  person Fat Monk    schedule 31.07.2019
comment
@ TheIncorrigible1 Я загрузил снимок экрана, показывающий, почему я думаю / думал, что это / был PowerShell v.10 - см. Номер версии в пути. Это, конечно, может ввести меня в заблуждение, но это то, на чем я основал свое предположение.   -  person Fat Monk    schedule 20.08.2019