SciTE (the Scintilla Text Editor) is my text editor of choice. It's fast, simple and lightweight. Not only that but it's based on the Scintilla editor component which can be used in your own apps. There are a couple of versions available for download, my preferred one is Bruce Dodson's version which amongst other things includes a Windows Explorer shell extension that adds an "Edit with SciTE" command for all file types.
<filename>(<line>, <col>) <error message>
...which is a fairly standard output format for most compilers and script interpreters.
The output window also supports standard input - which means if you have prompts in your scripts for input you can type them right into the output window.
SciTE can be extensively customised, as long as you don't mind editing (albeit quite straightforward) configuration files. You can edit the core *.properties files in %ProgramFiles%\Scintilla Text Editor, but you'd be better off opening your user options file which is stored at %USERPROFILE%\SciTEUser.properties. I say this because there's a better chance you'll back up this file along with your user profile when you next pave your machine. There's a shortcut to open or create a new the SciTEUser.properties file on the Options menu: Open User Options File.
Anyway, here's what's in my options file to help me develop Windows Scripting Host (*.vbs, .js) scripts as well as good old batch files (.cmd, *.bat) in SciTE. The key is to set the subsystem property to 0 so that all console input and output (stdin, stdout, stderr) end up in SciTE's output window:
# *.vbs files command.go.$(file.patterns.wscript)=cscript.exe //nologo "$(FilePath)" command.go.subsystem.$(file.patterns.wscript)=0 # *.js files command.go.*.js=cscript.exe //nologo "$(FilePath)" command.go.subsystem.*.js=0 # Run batch files inside SciTE command.go.$(file.patterns.batch)="$(FilePath)" command.go.subsystem.$(file.patterns.batch)=0
Hope that's useful for someone else.