Board logo

标题: [特效代码] 基于PJ混排的批处理自身隐藏运行 [打印本页]

作者: amwfjhh    时间: 2014-12-10 16:13     标题: 基于PJ混排的批处理自身隐藏运行

本帖最后由 amwfjhh 于 2014-12-10 16:19 编辑

如题:某些情况下需要建立一个常驻进程的脚本来定期执行或检查某些任务,这个时候批处理会一直在桌面窗口显示,要么最小化到任务栏占据一席之地,这个时候我们希望知道它在运行就行了,不需要出现在眼前,“眼不见,心不烦”,可以自如在干其它事情,免得意外操作将脚本关掉,又得重新执行,如果其前期会执行大量初始任务的话,这个状况会让人很受伤,之前是利用VBS中的SHELL对象,Run脚本并隐藏之,现在有了PJ混排后,可以直接在批处理自身便处理好这件事情。
  1. @if (0)==(0) echo off
  2. if "%1" EQU "" (
  3.   REM 无参启动时,退出脚本并以隐藏方式重启
  4.   cscript -nologo -e:jscript %~s0 RunAndHide %~s0
  5.   goto :EOF
  6. ) else (
  7.   goto %1
  8. )
  9. :_start
  10. echo,运行后你应该看不到我,如果你能看到我,此脚本未被隐藏
  11. REM 接下来可以做其它需要的事情...
  12. pause
  13. goto :EOF
  14. @end
  15. if (WScript.arguments.length < 1){
  16.   WScript.echo("无参数错误");
  17.   WScript.quit();
  18. }
  19. var fun=WScript.arguments(0);
  20. switch (fun){
  21. case "RunAndHide":
  22.   if (WScript.arguments.length < 2) {
  23.     WScript.echo("缺少运行参数");
  24.     WScript.quit();
  25.   }
  26.   var strFile = WScript.arguments(1);
  27.   RunAndHide(strFile);
  28.   break;
  29. default:;
  30. }
  31. function RunAndHide(str){
  32.   new ActiveXObject("WScript.Shell").Run(str + " :_start", 0, false);
  33. }
复制代码
代码中有很多行在这个示例里面可以合并节省代码量,此处是作为一个可扩展框架样本而成的这种格式。




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2