Bitte lesen Sie diesen Beitrag von StackOverflow über die 'return'-Anweisung. Hier ist die Zusammenfassung:
Zurück : Damit kehren Sie zum vorherigen Anrufpunkt zurück. Wenn Sie diesen Befehl von einem Skript aus aufrufen (außerhalb von Funktionen), kehrt er zur Shell zurück. Wenn Sie diesen Befehl von der Shell aus aufrufen, kehrt er zur Shell zurück. Dies ist der vorherige Aufrufpunkt für einen einzelnen von der Shell ausgeführten Befehl . Wenn Sie diesen Befehl von einer Funktion aus aufrufen, kehrt er zu dem Punkt zurück, von dem aus die Funktion aufgerufen wurde.
Die Ausführung aller Befehle nach dem Aufrufpunkt, an den sie zurückgegeben wird, wird ab diesem Punkt fortgesetzt. Wenn ein Skript von der Shell aus aufgerufen wird und es den Return-Befehl außerhalb von Funktionen enthält, gibt es bei der Rückkehr zur Shell keine weiteren Befehle mehr, sodass ein Return auf diese Weise im Wesentlichen mit Exit identisch ist.
Daher müssen Sie die return-Anweisung aus Ihrem 'if' und 'else' entfernen, wobei nur die Variable ihren Inhalt anzeigen muss.
Beispiel:
if ($OddEvnResult -eq "Odd") { write-host "Odd number in hostname detected (1,3,5..etc). Setting storage path to" $oddStrgPath #set-vmhost -VirtualHardDiskPath $oddStrgPath -VirtualMachinePath $oddStrgPath $OEresult= $oddStrgPath $OEresult } else { write-host "Even number in hostname detected (2,4,6..etc). Setting storage path to" $evnStrgPath #set-vmhost -VirtualHardDiskPath $evnStrgPath -VirtualMachinePath $oddStrgPath $OEresult= $evnStrgPath $OEresult }