powershell选择菜单(do-until)不会退出

vog*_*e24 2 powershell

function showMenu {
    cls;
    write-host “my menu”;
    write-host “1... Programm1”;
      write-host “2... Programm1”;
      write-host “3... Programm1”;
      write-host “q...exit”;
      return read-host "it´s your choice"
      }




$x = showMenu
do {showMenu}
until ($x -eq ‘q’)
Run Code Online (Sandbox Code Playgroud)

根据我对返回读取主机的理解"这是你的选择"我返回一个可能的变量,然后我将其定义为$ x,该脚本在第一次执行时工作,但是在输入了除"q"以外的其他内容之后,它只是没有离开循环

我已经谷歌搜索了一下,但只找到了关于使用无限循环的人的东西,我的书没有返回任何我可以使用的东西.

tl; dr:我有一个循环,它首先退出但不是在进一步的循环之后.

Blu*_*kes 5

$xdo...until循环之外分配,这意味着如果用户第一次没有选择退出选项,$x将永远不会相等'q',循环是无止境的.

只需在do脚本块中移动赋值,当用户选择时,循环将退出q:

function showMenu {
    cls;
    write-host “my menu”;
    write-host “1... Programm1”;
      write-host “2... Programm1”;
      write-host “3... Programm1”;
      write-host “q...exit”;
      return read-host "it´s your choice"
      }


do {$x = showMenu}
until ($x -eq ‘q’)
Run Code Online (Sandbox Code Playgroud)