使用vbscript更改控制台标题

时间:2010-06-14 12:45:03

标签: vbscript wsh

有没有办法更改cmd标题?我写了一个vbs程序。但是dos标题很糟糕。

名称为c:\ windows \ system32 \ cscript.exe 我尝试用:

title the_name和 title =“name”

但两者都行不通。

感谢您的帮助。

3 个答案:

答案 0 :(得分:4)

@AlexK您指向的链接实际上显示了如何更改命令窗口的标题,因此我不确定为什么这不能解决Matthias的问题。

@Matthias - 因为你已经在使用cscript,所以你有几个选择:

  1. 您可以创建一个父脚本,打开多个具有唯一标题的窗口,如下所示:
  2.   
    
      var x = new ActiveXObject("WScript.shell");
    
        for (var i=0; i < 5; i++) {
            x.run('cmd title your title ' + i + '| cscript.exe "params"');
        }
      

    或者只是让父脚本执行一个子脚本,但在运行cscript命令之前提示输入标题,如下所示:

      
    
      var x = new ActiveXObject("WScript.shell");
          x.run('cmd title your title ' + 
                WScript.StdIn.ReadLine() + 
                '| cscript.exe "script path and params"');
      
    1. 您还可以使用现有命令提示符中的“start”命令,并在每次运行脚本时更改标题的值
    2.   
      c:\>start "your title" cscript script_path.vbs
      1. 或者您可以使用windows api使用自定义activex对象以编程方式更改标题。这绝对是一个更深入的解决方案,但你可以使用C#创建一个activex对象,它可以调用windows api,并使用COM从vbscript执行C#函数。您将要使用findWindow和SetWindowText api调用来更改CMD窗口的标题。
      2. 查看IEUnit项目,特别是Win32Dom activex对象。这是一个很好的项目,因为它解决了“如何创建一个c#activex对象”和“如何调用win32 api”这个选项可能有的问题。它已经为你找到了findWindow部分。

        http://code.google.com/p/ieunit/source/browse/#svn%2Ftrunk%2Ftool%2FWin32Dom

答案 1 :(得分:3)

不幸的是,您使用任何WSH对象从脚本中cannot do that

唯一的方法是通过中介启动脚本(使用TITLE命令的.bat或使用%comspec%参数的其他脚本)。

答案 2 :(得分:0)

您是否需要在代码中更改它,或者您只是希望它看起来更好一点?您可以通过创建脚本的快捷方式,然后更改快捷方式的名称(在快捷方式的属性中,更改为General选项卡并更改其名称)来实现。