«Программно правильным способом» решения вашей проблемы является написание графического интерфейса .hta. Но если вы хотите использовать cscript для запуска своего скрипта, вы можете получить приемлемый интерфейс без особой работы. Поскольку у меня нет вашей * посуды, этот сценарий POC:
'bstep00.vbs - keep-windows-script-in-same-command-window
Option Explicit
Dim oWSH : Set oWSH = CreateObject( "WScript.Shell" )
Dim sCmd, oEx, sFN, iRet
sCmd = "fkdir.bat"
Set oEx = oWSH.Exec( sCmd )
If Not oEx.StdOut.AtEndOfStream Then
WScript.Echo oEx.StdOut.ReadAll()
WScript.StdOut.Write "file to type: "
sFN = WScript.StdIn.ReadLine()
sCmd = "fktype.bat " & sFN
Set oEx = oWSH.Exec( sCmd )
If Not oEx.StdOut.AtEndOfStream Then
WScript.Echo oEx.StdOut.ReadAll()
Else
WScript.Echo "(1) oEx.StdOut.AtEndOfStream"
End If
Else
WScript.Echo "(0) oEx.StdOut.AtEndOfStream"
End If
WScript.Echo "Done."
использует dir
(получить / показать информацию) и type
(использовать ввод пользователя на основе информации), чтобы продемонстрировать компоненты: файлы .Exec и .bat (например,
fktype.bat:
@echo off
type %1
). Использование файлов .bat (или .cmd) решает 2 проблемы: «сложные командные строки» и «запуск% comspec%», поэтому не поддавайтесь искушению избежать их, добавив больше текста в sCmd.
Вывод примера сессии:
cscript bstep00.vbs
07.10.2011 13:48 29 fkdir.bat
07.10.2011 14:01 20 fktype.bat
file to type: fkdir.bat
@echo off
dir | find "bat"
Done.