Deine Joins bauen einen String zusammen, keinen Befehl... Code kann man hier im Forum übrigens auch formatiert einfügen. Und wenn Du Deinen Variablen sprechende Namen gibst, verstehen Dritte schneller, was da überhaupt passiert.
If (($cm -eq $cmdez) -and ($edat1 -lt $cd))
{-join($a,$b,$c,$adv1,$d,$e)}
If (($cm -eq $cmdez) -and ($cd -gt $edat1) -and ($cd -lt $edat2))
{-join($a,$b,$c,$adv2,$d,$e)}
If (($cm -eq $cmdez) -and ($cd -gt $edat2) -and ($cd -lt $edat3))
{-join($a,$b,$c,$adv3,$d,$e)}
If (($cm -eq $cmdez) -and ($cd -gt $edat3) -and ($cd -lt $edat4))
{-join($a,$b,$c,$adv4,$d,$e)}
Im zweiten Schritt können wir uns dann über die Logik unterhalten, die die Dateinamen ermittelt