如何停止在Windows中运行的vb脚本

时间:2011-11-05 02:55:52

标签: scripting vbscript windows-scripting

我正在使用Windows 7

我写了一个脚本来检查我的笔记本电脑是以电池还是交流电流运行。 我用Google搜索并在那里成功。

dim a
a=1
Do While a=1 
If IsLaptop( "." ) Then
   ' WScript.Echo "Laptop"
Else
   ' WScript.Echo "Desktop or server"
End If
Loop

Function IsLaptop( myComputer )
    On Error Resume Next    
    Set objWMIService = GetObject( "winmgmts://" & myComputer & "/root/cimv2" )
    Set colItems = objWMIService.ExecQuery( "Select * from Win32_Battery", , 48 )
    IsLaptop = False
    For Each objItem in colItems
        if objItem.BatteryStatus=2 and objItem.EstimatedChargeRemaining=98 then
             WScript.Echo "Remove Ac Adapter Immediately"
        elseif objItem.BatteryStatus=1 and objItem.EstimatedChargeRemaining=10 then
             WScript.Echo "Pluggin to charger immediately"
        end if
    Next
    If Err Then Err.Clear
    On Error Goto 0
End Function

但我现在的问题是。如果我希望手动终止,这个脚本一直在运行脚本如何停止。

我有什么方法可以找到这个过程并在Windows中停止吗?

5 个答案:

答案 0 :(得分:12)

我至少可以想到两种不同的方式:

  1. 使用任务管理器(Ctrl-Shift-Esc),选择进程选项卡,查找进程名称cscript.exe或wscript.exe并使用End Process。

  2. 从命令行可以使用taskkill / fi“imagename eq cscript.exe”(根据需要更改为wscript.exe)

  3. 另一种方法是使用脚本和WMI。以下是一些提示:查找Win32_Process类和Terminate方法。

答案 1 :(得分:4)

可以从任务管理器终止运行脚本。

但是,使用 .AppActivate 永久关注程序窗口的脚本可能会让您很难找到任务管理器 - 您和脚本将争夺控制权。因此,我建议编写一个脚本(我出于显而易见的原因称之为自毁)并制作一个键盘快捷键来激活脚本。

自毁脚本:

Option Explicit
Dim WshShell
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "taskkill /f /im Cscript.exe", , True 
WshShell.Run "taskkill /f /im wscript.exe", , True  

键盘快捷键: 右键单击脚本图标,选择创建快捷方式, 右键单击脚本快捷方式图标,选择属性,单击快捷键并自行创建。

键入快捷键,所有脚本结束。干杯

答案 2 :(得分:2)

在您的代码中,在'do while'语句之后,添加此行..

`Wscript.sleep 10000`

这会让你的脚本睡眠10秒,让你的系统休息。否则,您的处理器将每秒运行此脚本数百万次,这肯定会加载您的处理器。

要杀死它,只需转到taskmanager并杀死wscript.exe,如果找不到,你会找到cscript.exe,按下删除按钮杀死它。这些将出现在任务管理器的进程选项卡中。

在代码中添加该行后,我不认为您需要终止此过程。它不会加载你的CPU。

度过美好的一天。

答案 3 :(得分:1)

启动任务管理器,单击“进程”选项卡,右键单击wscript.exe并选择“结束进程”,然后在随后的对话框中进行确认。这将终止正在执行脚本的wscript.exe。

答案 4 :(得分:0)

创建一个Name.bat文件,其中包含以下行。

taskkill /F /IM wscript.exe /T

请确保不要压倒处理器。 如果您运行的是长脚本,则处理器速度会发生变化,脚本行会相互覆盖。