我是Powershell的新手,并没有太多的编程背景,只是试图将它用于软件包装.无论如何,我发现了带-Wait参数的start-process命令,它适用于大多数事情.我注意到的是,它不仅等待你指定的进程,它等待任何子进程,即使在主进程不再运行之后.通常这很好,但我有一个奇怪的情况.我正在使用start-process运行复杂的Oracle批处理文件.批处理文件最终运行setup.exe,这是我真正想要等待的,但是其他进程也会产生永不停止.因此,如果我使用-wait参数,即使setup.exe不再运行,脚本也不会停止.我发现的最接近的是使用这个:
saps -FilePath "Path\config.bat" -ArgumentList "arguments"
Start-Sleep -s 10
Wait-Process -Name "setup"
Run Code Online (Sandbox Code Playgroud)
这有效,但我认为没有使用超时命令会有更好的方法.有任何想法吗?
让我们说这是我的Windows系统PATH的样子:
C:\ ORACLE \产品\ 11.2.0\32位\的Client_1\BIN; C:\ ORACLE \产品\ 11.2.0\64 \的Client_1\BIN; C:\窗口\ system32; C:\ WINDOWS; C:\ WINDOWS\System32下\ WBEM; C:\ Windows\System32下\ WindowsPowerShell\V1.0 \
如何删除第一个条目并将其添加到列表末尾?我知道你可以使用setx,但我宁愿使用PowerShell来做这件事.