@ AlexK Ссылка, на которую вы указываете, фактически показывает, как вы МОЖЕТЕ изменить заголовок командного окна, поэтому я не уверен, почему это не работает как решение проблемы Матиаса.
@ Matthias - поскольку вы уже используете cscript, у вас есть несколько вариантов:
- Вы можете создать родительский скрипт, который открывает несколько окон с уникальными заголовками, например:
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"');
- Вы также можете использовать команду «Пуск» из существующей командной строки и просто изменять значение заголовка при каждом запуске сценария
c:\>start "your title" cscript script_path.vbs
- Или вы можете использовать windows api для программного изменения заголовка, используя пользовательский объект activex. Это определенно немного более глубокое решение, но вы можете создать объект activex, используя C #, который может делать вызовы к api windows, и выполнять функцию C # из vbscript, используя COM. Вы захотите использовать API-вызовы findWindow и SetWindowText, чтобы изменить заголовок окна CMD.
Проверьте проект IEUnit, в частности, объект activex Win32Dom. Это хороший проект, с которого нужно начинать, потому что он решает вопросы «как создать объект c # activex» и «как вызвать win32 api», которые могут у вас возникнуть для этой опции. И в нем уже есть часть findWindow.
http://code.google.com/p/ieunit/source/browse/#svn%2Ftrunk%2Ftool%2FWin32Dom