Board logo

标题: 可以最小化运行的批处理 [打印本页]

作者: zh159     时间: 2006-11-26 12:49    标题: 可以最小化运行的批处理

利用自身来最小化运行的批处理开头
@echo off
mode con cols=15 lines=1
if exist "Temp.bat" goto Start
>Temp.bat echo start/min "" "%~nx0"^&exit
start/min Temp.bat&exit

:Start
del "Temp.bat">nul
pause
虽然没有快捷方式、VBS的隐藏好,但只要自身一个文件
作者: lxmxn     时间: 2006-11-26 20:21

  呵呵,不错,这个方法也可以哈~

作者: IceCrack     时间: 2006-11-26 21:53
感觉还是两个文件啊,一个是echo了vbs  一个是echo了bat而已嘛
作者: anqing     时间: 2006-11-26 23:02
lz的这句>Temp.bat echo start/min "" "%~nx0"^&exit我是单独写入temp中,然后运行这个Temp.bat ,运行后,既然无法结束它的进程,机器也有假死的现像。不知是为什么,请楼主赐教?这句的意思?
最后只有重启!
作者: vlq5299     时间: 2006-12-5 02:57
进程和任务栏里都有呀
作者: HUNRYBECKY     时间: 2007-1-18 08:32
使用CMDNOW工具,该工具非常强大,专门用于处理DOS或非DOW窗体的,可以在批处理中的开始加入CMDOW.EXE @ /DIS来禁止更改窗口,如果要隐藏窗口CMDOW.EXE @ /HID即可。这个命令可以到http://commandline.co.uk上去下载。
作者: tghksj     时间: 2007-1-18 08:52
HUNRYBECKY 老师

电信网开你给的地址有点困难,麻烦附件一个,谢谢:)
作者: lotus516     时间: 2007-1-18 09:09
好东东,抢了!!
作者: everest79     时间: 2007-1-18 09:16
@echo off&&mode con cols=15 lines=1
%1 %2
start /min /i "" "%~nx0" goto min&&goto :eof

:min
echo xxx
pause>nul
exit

我模仿一个
作者: zh159     时间: 2007-1-18 10:20


  Quote:
Originally posted by anqing at 2006-11-26 10:02:
lz的这句>Temp.bat echo start/min "" "%~nx0"^&exit我是单独写入temp中,然后运行这个Temp.bat ,运行后,既然无法结束它的进程,机器也有假 ...

你这句是反复运行Temp.bat自身的,会启动无数个,占用极大资源,当然会造成机器假死现像了

  Quote:
Originally posted by everest79 at 2007-1-17 20:16:
@echo off&&mode con cols=15 lines=1
%1 %2
start /min /i "" "%~nx0" goto min&&goto :eof

:min
echo xxx
pause>nul
exit

我模仿一个

这个好,不用产生临时文件
作者: everest79     时间: 2007-1-19 04:04
哈哈,加分了
作者: lixinwu     时间: 2007-1-20 01:03
真正要隐藏,还得用其他办法
作者: kafen     时间: 2007-1-20 04:45


  Quote:
Originally posted by everest79 at 2007-1-18 09:16:
@echo off&&mode con cols=15 lines=1
%1 %2
start /min /i "" "%~nx0" goto min&&goto :eof

:min
echo xxx
pause>nul
exit

我模仿一个

请详细解释一下,好吗?谢了!
作者: everest79     时间: 2007-1-20 08:31
当你双击执行时这个批处理只会执行以一代码
@echo off&&mode con cols=15 lines=1
%1 %2
start /min /i "" "%~nx0" goto min&&goto :eof
start /min /i "" "%~nx0" goto min再次启动自身后退出
然后批处理会这样执行
@echo off&&mode con cols=15 lines=1
goto min

:min
echo xxx
pause>nul
exit

作者: HUNRYBECKY     时间: 2007-1-20 09:14


  Quote:
Originally posted by everest79 at 2007-1-18 09:16:
@echo off&&mode con cols=15 lines=1
%1 %2
start /min /i "" "%~nx0" goto min&&goto :eof

:min
echo xxx
pause>nul
exit

我模仿一个

模仿的这个不是真正的隐藏,效果不好。
作者: HUNRYBECKY     时间: 2007-1-20 09:18


  Quote:
Originally posted by tghksj at 2007-1-18 08:52:
HUNRYBECKY 老师

电信网开你给的地址有点困难,麻烦附件一个,谢谢:)

算不上老师,你可以加入我的群。里面有,群号是:29946542
作者: everest79     时间: 2007-1-20 09:23
一定是的啦,做不到完全隐藏
作者: kafen     时间: 2007-1-20 09:54


  Quote:
Originally posted by everest79 at 2007-1-20 08:31:
当你双击执行时这个批处理只会执行以一代码
[code]
@echo off&&mode con cols=15 lines=1
%1 %2
start /min /i "" "%~nx0" goto min&&goto :eof

...

还是不懂,我加入引用一个外部命令后,再关闭竟出现两个相同窗口,请问:如加入一个
call QQ.exe

这样的得加在什么地方用?谢谢!
作者: everest79     时间: 2007-1-20 10:22
@echo off&&mode con cols=15 lines=1
%1 %2
start /min /i "" "%~nx0" goto min&&goto :eof

:min
start "" "qq.exe"
exit
作者: zh159     时间: 2007-1-20 12:06


  Quote:
Originally posted by HUNRYBECKY at 2007-1-19 20:14:



模仿的这个不是真正的隐藏,效果不好。

我的标题是:可以最小化运行的批处理
不是:可以隐藏运行的批处理

很多时候只要求批处理最小化运行,而不是隐藏运行

[ Last edited by zh159 on 2007-1-19 at 11:08 PM ]
作者: kafen     时间: 2007-1-20 21:01
你好两位高人,请帮我看看如何把你们这代码应用到我这情况中去。
http://www.cn-dos.net/forum/viewthread.php?tid=26896&fpage=1
作者: qinbuer     时间: 2007-6-7 13:47
学习了
作者: qinbuer     时间: 2007-6-8 12:51
如果只要求最小化,那么
@echo off
start %0 /min

这样不是很简洁?
作者: oilio     时间: 2007-6-8 16:36
我想问一个,为啥要用到%1和%2呢,有点不解,哪位帮忙解释一下好吗?
作者: dikex     时间: 2007-6-8 17:09


  Quote:
Originally posted by qinbuer at 2007-6-8 12:51 PM:
如果只要求最小化,那么
@echo off
start %0 /min

这样不是很简洁?

首先,直接start %0 /min 并不能启动原来的批处理,需要start "" %0 /min 之类的;

第二,/min放到后面是无效的,放到前面start /min "" %0;

第三,直接执行这个代码会产生递归效果,而且直接使用start调用bat的话,并不是平常的cmd /c而是cmd /k来执行批处理,就是批处理运行完所有代码后不会退出,这样就会使得cmd窗口弹出一大堆,可以试试,死机别说我……


To楼上:

%1 %2是上次start调用批处理时传递的启动参数:
start /min /i "" "%~nx0" goto min
这里%1和%2分别对应goto和min了;

那么被start调用的批处理执行%1 %2时就等于执行goto min,就跳转到:min标签而不再次执行start以免产生递归效果
作者: oilio     时间: 2007-6-8 18:48
谢谢楼上的朋友的解释,我下班回去研究下。
作者: ldr2zjj     时间: 2007-6-9 21:10
都不是隐藏了`~只是最小化了似的`~~
作者: imyours     时间: 2009-6-15 16:12
start /min /i "" "%~nx0" goto min
===============
我想问一下,这个“goto min”前边再加一些无意义字符的话,会出错,并反复运行自身。
srtat后面跟的只能是“goto min”?
因为我刚刚想试能不能调出 %1、%2、%3 之类的……

好象挖旧帖是不对的,开新帖又浪费资源……版主大人有大量
作者: gool123456     时间: 2010-4-11 19:10
我也想不明白这里的%1和%2?

有谁可以告诉我的?