0

这是我的.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 也不会开始最小化。

先感谢您!

4

1 回答 1

0

我没有对此进行测试,但我认为它应该可以工作。这是一个批处理 + 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);

我将尝试描述脚本的工作流程。

  1. cmd batch:用户通过双击或batfile.batcmd提示符处输入来启动批处理脚本。

  2. 脚本检查是否cscript.exe在任务列表中。它不是。

  3. 脚本使用 JScript 解释器而不是 cmd 批处理解释器重新启动自身。当前 cmd 解释退出。

  4. JScript: WScript.Shell 对象Run 方法使用 cmd 解释器在隐藏的非阻塞进程中重新启动批处理脚本。

  5. 暂停 100 毫秒后,JScript 到达文件末尾并退出。这应该是最后一个可见窗口。

  6. 不可见的 cmd 批处理:脚本检查是否cscript.exe在任务列表中。JScript 在这一点上仍然暂停,所以cscript.exe确实存在。

  7. 去 ping 自己... 8 秒。

  8. 在非阻塞过程中激活 Skype 快捷方式。

  9. 批处理脚本退出。

于 2013-04-17T11:15:59.320 回答