这是我的.bat。一切正常,除了倒计时发生时我在屏幕上看到黑色窗口...
@echo off
timeout /nobreak /t 8 > nul
start /d "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Skype\" Skype.lnk
exit
Ps:/min
不起作用,即使我skype.lnk
在程序文件中右键单击并将那里设置为最小化,Skype 也不会开始最小化。
先感谢您!
这是我的.bat。一切正常,除了倒计时发生时我在屏幕上看到黑色窗口...
@echo off
timeout /nobreak /t 8 > nul
start /d "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Skype\" Skype.lnk
exit
Ps:/min
不起作用,即使我skype.lnk
在程序文件中右键单击并将那里设置为最小化,Skype 也不会开始最小化。
先感谢您!
我没有对此进行测试,但我认为它应该可以工作。这是一个批处理 + JScript + 再批处理混合脚本。用.bat
扩展名保存它,让我知道它是否适合你。如果没有,我会做一些测试。
@if (@a==@b) @end /*
:: batch portion
@echo off
tasklist /fi "IMAGENAME eq cscript.exe" | find /i "cscript.exe" >NUL || (
start "" cscript /nologo /e:jscript "%~f0"
exit
)
:: ping -n seconds + 1 (because first ping result is instant)
ping -n 9 localhost > nul
start /d "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Skype\" Skype.lnk
exit
:: JScript portion */
var sh = new ActiveXObject("WScript.Shell");
sh.Run(WSH.ScriptFullName, 0);
WSH.Sleep(100);
我将尝试描述脚本的工作流程。
cmd batch:用户通过双击或batfile.bat
在cmd
提示符处输入来启动批处理脚本。
脚本检查是否cscript.exe
在任务列表中。它不是。
脚本使用 JScript 解释器而不是 cmd 批处理解释器重新启动自身。当前 cmd 解释退出。
JScript: WScript.Shell 对象Run 方法使用 cmd 解释器在隐藏的非阻塞进程中重新启动批处理脚本。
暂停 100 毫秒后,JScript 到达文件末尾并退出。这应该是最后一个可见窗口。
不可见的 cmd 批处理:脚本检查是否cscript.exe
在任务列表中。JScript 在这一点上仍然暂停,所以cscript.exe
确实存在。
去 ping 自己... 8 秒。
在非阻塞过程中激活 Skype 快捷方式。
批处理脚本退出。