Если просто использовать простой графический интерфейс поверх ваших сценариев, то самый простой путь - это VB.NET (или C #). Это то, что я делаю.
В конструкторе Visual Studio это всего лишь вопрос проектирования формы, дважды щелкните кнопку, которая начнет обработку, добавьте код для считывания параметров из элементов графического интерфейса (например, пути к файлам в TextBox) и передайте информация к скрипту через переменные окружения или параметры командной строки.
Пример из одного из моих приложений (используется реальными пользователями):
Dim inputFolder As String = txtInputDataMGFfolder.Text
Dim outputFile As String = txtOutputMGFfile.Text
Dim ws As WshShellClass = New WshShellClass
Dim objEnviron2 As IWshRuntimeLibrary.IWshEnvironment = _
ws.Environment("PROCESS")
objEnviron2.Item("INDIR") = inputFolder
objEnviron2.Item("OUTFILE") = outputFile
'It may or may not help for this: the user dialogs for selecting
'files may change the current directory and running the Perl
'script or one of the .pm files would fail.
ws.CurrentDirectory = appPath()
ws.Run("%COMSPEC% /K perl -w MultRawPrepare.pl", 1, False)
Обратите внимание, что использование Windows Script Host для этого не обязательно строго, но если это
тогда это нужно:
'Requires adding reference to project:
' menu Project/Add Reference/COM/Windows Script Host Object Model
' Note: "Windows", not "Microsoft".
'
'Note: the DLL may not be registered;
' D:
' cd \WINNT\system32
' regsvr32 wshom.ocx
Imports IWshRuntimeLibrary 'For WshShellClass.
appPath () определяется следующим образом (и требуется «Imports System.Reflection» в начале файла VB.NET):
Public Shared Function appPath() As String
'"[Assembly]" requires System.Reflection
Dim strAppDir As String = _
Path.GetDirectoryName( _
[Assembly].GetExecutingAssembly().GetModules(False)(0).FullyQualifiedName)
Return strAppDir
End Function 'appPath
Пользовательский выбор файлов или папок легко добавить, но ему помогают инструкции HOW-TO и небольшой пример кода.
Экспресс-версия Visual Studio для VB.NET бесплатна.