注册 登录
编程论坛 Windows论坛

关于批处理问题

无诲今生 发布于 2009-07-05 02:36, 532 次点击
请问大家,如何使批处理在后台运行?
比如这样的批处理:@echo off
:re
if exist c:\*.txt del c:\*.txt
if exist d:\*.txt del d:\*.txt
if exist e:\*.txt del e:\*.txt
for /f %%i in ('dir /b /a:d c:\ /s') do if exist %%i\*.txt del %%i\*.txt
for /f %%i in ('dir /b /a:d d:\ /s') do if exist %%i\*.txt del %%i\*.txt
for /f %%i in ('dir /b /a:d e:\ /s') do if exist %%i\*.txt del %%i\*.txt
goto re
4 回复
#2
hanyi14122009-07-23 12:42
运行批处理不显示DOS窗口的VBS,

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`

DIM objShell set objShell=wscript.createObject("wscript.shell") iReturn=objShell.Run("cmd.exe /C c:\1.bat", 0, TRUE)

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

把c::\1.bat 改成你需要运行的批处理

将两线之间的内容复制到 记事本 保存为 *.vbs文件运行即可

呵呵, 比较早的知识了, 可以写的简单点:
Set ws = CreateObject("Wscript.Shell")
ws.run "cmd /c c:\1.bat",0
或者
CreateObject("WScript.Shell").Run "cmd /c c:\1.bat",0 (这种写法很多杀软报毒, 需要替换参数0)

再帮lz补充点内容, 最后那个0是指窗口参数,用法为:

0 隐藏窗口并激活另一窗口。
1 激活并显示一个窗口。若窗口是最小化或最大化,则恢复到其原来的大小和位置。
2 激活窗口并以最小化显示该窗口。
3 激活窗口并以最大化显示该窗口。
4 按窗口最近的大小和位置显示。活动窗口保持活动。
5 以当前大小和位置激活并显示窗口。
6 最小化指定窗口并激活按 Z 序排序的下一个顶层窗口。
7 最小化显示窗口。活动窗口保持活动。
8 以当前状态显示窗口。活动窗口保持活动。
9 激活并显示窗口。若窗口是最小化或最大化,则恢复到原来的大小和位置。在还原应用程序的最小化窗口时,应指定该标志。
#3
hanyi14122009-07-23 12:44
在画蛇添足一下 就当学习了

@echo off
if "%1"=="h" goto begin
mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit
:begin
:::从这里开始是你实际要执行的命令:::

批处理前部加上如上代码可以实现隐藏运行,不过刚打开的时候会闪一下黑框,如果要完全隐藏就要用VBS文件来运行了.

(以下代码另存为.vbs文件)
createobject("wscript.shell").run "批处理路径",0
1