powershell:同步停止过程

Pet*_*ras 2 powershell

好.我想停止正在运行的进程,然后在进程停止后继续执行脚本.

例如:停止媒体播放器,然后删除媒体播放器数据库(如果你有wmp12,你可能会理解为什么!)但是在应用程序有时间关闭之前,脚本的其余部分开始执行.

#stop wmp
stop-process -processname wmplayer
#delete
dir "C:\Users\blergh\AppData\Local\Microsoft\Media Player" -filter *wmdb | foreach { del $_.fullname}
Run Code Online (Sandbox Code Playgroud)

我得到:

Remove-Item : Cannot remove item C:\Users\blergh\AppData\Local\Microsoft\Media Player\CurrentDatabase_372.wmdb: The proces
s cannot access the file 'C:\Users\blergh\AppData\Local\Microsoft\Media Player\CurrentDatabase_372.wmdb' because it is bei
ng used by another process.
Run Code Online (Sandbox Code Playgroud)

我可以强制它同步运行吗?

谢谢,P

zda*_*dan 5

怎么样:

$wmplayer = get-process wmplayer
stop-process $wmplayer.id
wait-process $wmplayer.id -erroraction:silentlycontinue
Run Code Online (Sandbox Code Playgroud)

请注意,添加了错误,以便在快速终止进程时不会出现错误,

或者作为一个更方便的单行:

stop-process -processname wmplayer -passthru| wait-process
Run Code Online (Sandbox Code Playgroud)