<script language="VBScript" type="text/vbscript"> <![CDATA[ On Error Resume Next Err.Clear REM Obtain process id WScript.Echo "#$% Find Process ID" strComputer = "." Set objWMIService = Getobject("winmgmts:" _ & "{impersonationLevel=impersonate}!\" & strComputer & "rootcimv2") Function CurrProcessId Dim oShell,sCmd,oWMI,oChldPrcs,oCols,lOut lOut = 0 Set oShell = CreateObject("WScript.Shell") Set oWMI = Getobject(_ "winmgmts:{impersonationLevel=impersonate}!\.rootcimv2") Randomize sCmd = "/K @echo " & Int(Rnd * 3333) * CDbl(Timer) 1 oShell.Run "%comspec% " & sCmd,0 WScript.Sleep 100 'For healthier skin,get some sleep Set oChldPrcs = oWMI.ExecQuery(_ "Select * From Win32_Process Where CommandLine Like '%" & sCmd & "'",32) For Each oCols In oChldPrcs lOut = oCols.ProcessId 'get parent oCols.Terminate 'process terminated Exit For Next Set oChldPrcs = nothing Set oWMI = nothing Set oShell = nothing CurrProcessId = lOut End Function WScript.Echo CurrProcessId WScript.Echo "#$% Process ID Found" if Err.Number <> 0 then ' An exception occurred WScript.Echo "Exception:" & vbCrLf &_ " Error number: " & Err.Number & vbCrLf &_ " Error description: '" & Err.Description & vbCrLf end if ]]> </script>
当我按顺序启动wsf脚本的时候,它工作的非常好,但是当更多的脚本“并行”启动一些意想不到的事件时,多个脚本获得相同的进程ID:
10 scripts started #$% Find Process ID #$% Find Process ID #$% Find Process ID #$% Find Process ID #$% Find Process ID #$% Find Process ID #$% Find Process ID #$% Find Process ID #$% Find Process ID #$% Find Process ID 1472 #$% Process ID Found 6664 #$% Process ID Found 6456 #$% Process ID Found 6456 #$% Process ID Found test1.wsf exit code 0 test10.wsf exit code 0 test2.wsf exit code 0 test4.wsf exit code 0 6456 #$% Process ID Found 4100 #$% Process ID Found 4100 #$% Process ID Found 4100 #$% Process ID Found test3.wsf exit code 0 test5.wsf exit code 0 test6.wsf exit code 0 test7.wsf exit code 0 #$% Process ID Found Exception: Error number: -2147217406 Error description: 'Not found 6540 #$% Process ID Found test8.wsf exit code 0 test9.wsf exit code 0
更何况,随机我得到一些作为例外garbe。
我的问题如下:
为什么GetIsNetworkAvailable()总是返回true?
如何在Windows上的jenkins中编译和运行简单的java文件
将编码的std :: string从Base16转换为Base10?
如何在batch file脚本的循环中打印程序的返回值?
如何检索剪贴板文件指针CF_HDROP
Windows如何为同时启动的进程获取相同的进程ID?
什么导致exception?
我没有经验的WSF和上述代码是字面上复制粘贴,我做错了什么?
使用CMake生成.dll
用JavaScript或Web表单爬行网站
C#窗体中的圆angular
如何告诉rustc(通过货物)在哪里可以find我的dll导入库
如何在Windows中使用Python BaseHttpRequestHandler将图像传输到客户端?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。