如何让批处理程序启动的时候最小化

批处理隐藏运行 隐藏批处理本身


代码如下:

@echo off
if "%1"=="h" goto begin
start mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit
:begin
::以下为正常批处理命令,不可含有pause set/p等交互命令
××××××××

解释:
这个是用 mta 的脚本语言 利用 VBScript 创建了windows 中 wscript.shell该控件,用这个控件里面提供的 run 方法 后台 运行的这个批处理, mst脚本语言就是相当于 html 应用程序,不管用什么脚本语言,只要能创建 windows系统提供的 wscript.shell这个空间,用这个空间里面的run方法打开 我们也可以用mta脚本语言里面JavaScript一样能行 @echo off ::批处理隐藏运行 if "%1"=="h" goto begin mshta "javascript:new ActiveXObject('wscript.shell').run('%~nx0 h',0);window.close();"&&exit ::要运行的代码 :begin echo OK pause>nul mta脚本语言其实和html语言基本一样,mta脚本语言是用mshta程序解析的,html是用浏览器解析的(IE) 建议看下html脚本语言就明白了,这不是用的格式为vbs文件的那个脚本语言,vbs脚本文件是用wscript解析的 只要记住用 用 mshta vbscript:createobject("插件名")(window.close) 这里window.close是那个 mshta 本身里面的方法,就是关闭该程序。 这种格式创建windows提供的插件就行了,插件里面的方法看下文档就明白了 关于脚本语言不明白的地方可以 HI 我

怎么能够隐藏批处理的运行窗口

这个不会生成临时文件(兼容空格路径的):

@echo off
if "%1" == "h" goto begin
mshta vbscript:createobject("wscript.shell").run("%~fs0 h",0)(window.close)&&exit
:begin
rem 下边开始写批处代码了

总结:
将下面任何一句话加在@echo off下面都可以起到隐藏执行的效果,(code标签后就是要隐藏执行的任务)
两句代码的思路相同,实现手段不同.请细细体味:

if "%1"=="h" (goto code) else (mshta vbscript:createobject^("wscript.shell"^).run^("%~fs0 h",0^)^(window.close^)&exit)

if exist #hide.vbs (del #hide.vbs &goto code) else (echo createobject^("wscript.shell"^).run "%~fs0",0 >#hide.vbs&start

#hide.vbs&exit)

这段代码不会闪提示符出来
@echo off
if "%1" == "h" goto begin
mshta vbscript:createobject("wscript.shell").run("%~nx0 h",0)(window.close)&&exit
:begin
rem 下边开始写批处代码了
.....

最后一个:
if not "%1"=="h" mshta vbscript:createobject("wscript.shell").run("%~sf0 h %*",0)(window.close)&exit /b
shift /1对我有帮助

@echo off
if "%1"=="h" goto begin
start mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit
:begin
::以下为正常批处理命令,不可含有pause set/p等交互命令
pause

如何让批处理文件隐藏运行
if "%1" == "h" goto begin
mshta vbscript:createobject("wscript.shell").run("%~nx0 h",0)(window.close)&&exit
:begin
如果双击一个批处理,等价于参数为空,而一些应用程序需要参数,比如在cmd窗口输入shutdowm -s -t 0,其中-s -t 0就为参数。shutdown为%0,-s为%1,-t为%2,以此类推。
第一行我们先跳过,看第二行,表示利用mshta创建一个vbs程序,内容为:createobject("wscript.shell").run(……).如果运行的批处理名为a.bat,在C:\下,那%0代表C:\a.bat,%~nx0代表a.bat。h极为参数%1,0表示隐藏运行。由于你双击运行,故第一次批处理%1为空,if不成立,转而运行下一句。然后再次打开自己,并传递参数h,此时if成立,跳转至begin开始运行。
这两行很经典,可以使批处理无窗口运行。

另外做个批处理程序来调用即将执行的批处理文件,
我的方法是:


代码如下:

@echo off  
start /min  1.bat

将上面的代码保存为: 2.bat

之后将你的批处理文件保存为 1.bat,运行之前先打开2.bat,则1.bat就最小化运行了.

(0)

相关推荐

  • 如何让批处理程序启动的时候最小化

    批处理隐藏运行 隐藏批处理本身 复制代码 代码如下: @echo off if "%1"=="h" goto begin start mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit :begin ::以下为正常批处理命令,不可含有pause set/

  • 防木马随程序启动的一个方法

    我们知道,有些木马是通过修改exe的文件关联来实现随EXE程序启动的.今天我在网上看到有另外一个显为人知的方法,就是通过在注册表HKEY_LOCAL_MACHINE\SOFTWARE  \Microsoft\Windows NT\  CurrentVersion\Image File  Execution Options 下新建一个注册表项,项名为A.exe,然后在下面新建一个字符串,字符串名为Debugger,字符串值就是程序B.exe的全路径. 很明显,这个是针对系统可以设置每个程序指定的纠

  • 用于修复XP中最小化程序 在任务栏显示图标的vbs脚本

    复制代码 代码如下: 'xp_taskbar_desktop_fixall.vbs - Repairs the Taskbar when minimized programs don't show. '?Kelly Theriot and Doug Knox - 8/22/2003 加工 加龙ddf3 '翻译:Smallfrogs.翻译内容:将英文提示改为简体中文 '来源:Microsoft Windows XP NewsGroup Set WSHShell = WScript.CreateOb

  • 批处理程序删除自身 bat批处理

    批处理程序删除自身.bat echo 有时候我们需要批处理程序在执行完成之后删除自身,可以用 del %0 例: 复制代码 代码如下: @echo off echo 按任意键后我将删除自身 pause del %0 不过如果你的批处理需要将当前的批处理改变目录就会出现错误,无法达到我们预知的效果. 例如:当前批处理名为 do.bat 复制代码 代码如下: move *.* d:\ del %0 就无法删除do.bat了.那么就需要结合下管道操作符| 复制代码 代码如下: del %0 | mov

  • Call 从一个批处理程序调用另一个批处理程序,并且不终止父批处理程序。

    Call 从一个批处理程序调用另一个批处理程序,并且不终止父批处理程序.call 命令接受用作调用目标的标签.如果在脚本或批处理文件外使用 Call,它将不会在命令行起作用. 语法 call [[Drive:][Path] FileName [BatchParameters]] [:label [arguments]] 参数 [Drive:}[Path] FileName  指定要调用的批处理程序的位置和名称.filename 参数必须具有 .bat 或 .cmd 扩展名.  BatchPara

  • 在ASP.NET 2.0中操作数据之五十八:在程序启动阶段缓存数据

    导言: 前面2章考察了在表现层和缓存层缓存数据.在第56章,我们探讨了在表现层设置ObjectDataSource的相关cache属性来缓存数据.在第57章,我们探讨了创建一个单独的分开的缓存层.这2章都是采用"应激装载"(reactive loading)的模式来缓存数据.该模式下,每次请求数据时,系统先检查其是否在内存,如果没有,则从数据源--比如数据库,来获取数据,然后将其存储在内存里.该模式的优势在于执行起来很容易:而缺点之一在于应"请求"(requests

  • Android程序启动时出现黑屏问题的解决方法

    本文实例讲述了Android程序启动时出现黑屏问题的解决方法.分享给大家供大家参考,具体如下: 关于黑屏: 默认的情况下,程序启动时,会有一个黑屏的时期,原因是,首个activity会加载一些数据,比如初始化列表数据.向服务器发送请求获取数据等等. 去除方法: 1.在style里面添加一个style: <style name="ContentOverlay"parent="@android:style/Theme.Light"> <itemname

  • 利用bat批处理程序通过DOS命令行删除所有的空文件夹的方法

    用过gothub或者码云的同学都知道,不包含任何文件的空文件夹上传提交时不被允许的.当然你可以在空文件下创建.keep文件(或.gitkeep文件),然后就可以上传了. 但是如果空文件夹比较多,并且我们确实不需要这些空文件了,那本文就学习一种命令行删除所有空文件夹的方法.并封装成.bat批处理程序.通过鼠标右键运行即可. 一,DOS删除命令 1.1,删除文件命令 del 若是想删除文件,输入del 盘符名:\文件名,比如,我想删除一个在F盘的名为123.txt的文件,则输入  del f:\12

  • 详解SpringBoot程序启动时执行初始化代码

    因项目集成了Redis缓存部分数据,需要在程序启动时将数据加载到Redis中,即初始化数据到Redis. 在SpringBoot项目下,即在容器初始化完毕后执行我们自己的初始化代码. 第一步:创建实现ApplicationListener接口的类 package com.stone; import com.stone.service.IPermissionService; import org.springframework.context.ApplicationListener; import

  • C#程序启动项的设置方法

    本文为大家分享了C#程序启动项的设置方法,供大家参考,具体内容如下 托盘图标设置 新建一个NotifyIcon,会在托盘处显示一个图标. NotifyIcon.Icon可以直接设置一个ico图片,也可以延用原有程序的图标. notifyIcon.Icon = System.Drawing.Icon.ExtractAssociatedIcon(Application.ExecutablePath); public partial class MainWindow : Window { privat

随机推荐