【问题标题】:Change Console Title with vbscript使用 vbscript 更改控制台标题
【发布时间】:2010-06-14 12:45:03
【问题描述】:

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

名字是c:\windows\system32\cscript.exe 我试试看:

标题 the_name 和 标题="名称"

但两者都不起作用。

感谢您的帮助。

【问题讨论】:

    标签: vbscript wsh


    【解决方案1】:

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

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

    1. 您可以创建一个父脚本,以打开多个具有唯一标题的窗口,如下所示:
    
      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. 您还可以在现有命令提示符下使用“开始”命令,每次运行脚本时只需更改标题的值
    c:\&gt;start "your title" cscript script_path.vbs
    1. 或者您可以使用 windows api 使用自定义的 activex 对象以编程方式更改标题。这绝对是一个更深入的解决方案,但您可以使用 C# 创建一个 activex 对象,该对象可以调用 windows api,并使用 COM 从 vbscript 执行 C# 函数。您需要使用 findWindow 和 SetWindowText api 调用来更改 CMD 窗口的标题。

    查看 IEUnit 项目,特别是 Win32Dom activex 对象。这是一个很好的项目,因为它解决了您可能对此选项有的“如何创建 c# activex 对象”和“如何调用 win32 api”问题。它已经为您完成了 findWindow 部分。

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

        您需要在代码中更改它还是只是希望它看起来更好一点?您可以通过创建脚本的快捷方式然后更改快捷方式的名称来完成此操作(在快捷方式的属性中,更改为General 选项卡并在那里更改名称)。

        【讨论】:

        • 问题是,我会多次打开我的脚本,每次有 c:\windows\system32\cscript.exe ...比我有 5 个窗口打开,而不是我现在没有我可以关闭哪个窗口是正确的...希望您能理解我...对不起我的英语^^
        • @matthias: 恐怕我不知道。
        猜你喜欢
        • 2011-05-22
        • 2011-04-14
        • 1970-01-01
        • 2010-12-10
        • 1970-01-01
        • 1970-01-01
        • 2018-10-25
        • 1970-01-01
        相关资源
        最近更新 更多