WinBatch® User Feedback

Just because we make WinBatch doesn't mean we know how folks use it. So we asked our users and received a wide variety of answers, some surprising and some not. You can view the letters below or go back to the compiled list of WinBatch uses.

If you'd like to make a contribution to this list, contact support. Thanks for your thoughts.

My use is primarily PC control, i.e. starting programs/jobs at certain hours, do repetitive tasks. I've 3 servers and about 30 jobs that run regularly.

The Object__() functions made my life much easier since I can do almost all my jobs in WinBatch, rather than have WinBatch call MS Access/VB have it do most of the work. I do a lot of reporting and I can automate just about everything via WinBatch.

In most cases WinBatch is also many less lines of coding than VB, i.e. with the recent virus problems we had to deny customers access to our RAS system unless they could provide the RAS admin with proof of the latest McAfee engine and files. The previous procedure was to fax in screen prints (and most of our customers aren't PC-literate) which the admin had to gather, collate and review. With the aid of McAfee read-me I wrote an EXE that queried the registry, emailed the RAS admin all the pertinent info, which he can review quickly -- the EXE was about 15 lines of code and took me 15 minutes to write. The RAS admin was very very happy.

I haven't done a lot in software distribution but I did automate Oracle Client installs and some environment mods for our Problem Desk software. WinBatch was able to do things that Wise couldn't or that we didn't have the time to find out. I was able to complete the Oracle Install program in a single day.

If it wasn't for WinBatch I'd be learning UNIX or VMS.

Hope this helps. -Jay

Hmm. A menu system to integrate DOS batch files, DOS executables, win 16 programs, and win32 programs. Provided the command line params and/or environment setups as needed for each one.

Remote application / code snippet running, with priorities and job queues and a remote job status viewer.

A fun overkill paint program with Todd

Renaming downloaded files, especially mp3s, to fit my method. Done primarily in FileMenu, although I toyed with the idea of a standalone WinBatch program with templates (take files in format a and convert to format f).

Lots of little quickie utilities. Counting lines. Counting COBOL code lines. Shifting lines over x (usually 6) spaces. Breaking files into multiple other files. Hiding the Copying or Moving box from Explorer (for large files), done in PopMenu. Automate downloading email from multiple boxes, newsgroup messages/files, reconnecting to the Internet. Showing / hiding windows that you may need up but don't want taking space.

Wrote a slow code cracker in it once. Not recommended due to the speed, but it was good for a prototype. I even added stop and resume features.

Tested considerable API stuff without firing up VC. Some things are too awkward, but it's a fun way to poke around without getting into serious trouble, or having the powerful but tiresome VC IDE.

Wrote a volume adjuster for WinAmp (and a few other mp3 players) that let you adjust the base volume on a per song basis. That saved me fiddling with the volume or hurting my ears. Unfortunately it was too inefficient to be satisfying due to the frequent polling for song changes.


My focus is mainly data manipulation. I probably overuse WinBatch in this area but it is easy to work with and gets the job done. I've written utilities to verify URL's which are stored in databases, an SQL script management tool, a batch e-mail program which can send out e-mail from a variety of sources and in a variety of forms and also an AutoEntry utility which can be used to automate the update/insert/deletion of data (as well as almost any other repetitive task) by utilizing an application's interface. This last utility is especially useful when SQL updates are not practical.

In the interest of shameless, self-promotion, these utilities are available for free to any interested parties.


Highlights from my own personal "1001 ways to skin a cat, er, manage Windows, er, manage NetWare, etc..."

1) Automate numerous system administration tasks in the daily operations of Windows NT and NetWare servers. Includes managing user accounts, checking on the status of system backups, checking disk space utilization, etc.... Also used to interrogate a system to learn about how it is configured and to check the status/availability of a server or services running on a server.

2) Augment the capabilities of ZenWorks to allow really complicated software distribution tasks to be completed 100% automatically (or is that automagically) and 100% correct every time. Things like modifying the WinNT global search path (via the registry) when an application gets distributed w/o destroying the existing contents of the search path, customizing software with mainframe terminal id numbers based on the workstation's name, etc...

3) Data manipulation. Special purpose, one-shot scripts. I "cut my teeth" on OpenVMS (well, it was VAX/VMS back then) and I used DCL script extensively (tactical thermo-nuclear DCL) to manage my VAX and Alpha systems. WinBatch is the single Windows based scripting language that comes close to matching DCL for flexibility and ease of use. Special scripts to massage a BOOTPTAB file from a UNIX system and then automatically load it into the WinNT DHCP manager via the Control Manager extender is one example. Numerous other things like Control Manager extender based scripts that drive the NetWare SAA gateway and Microsoft SNA Server configuration programs to automatically create and configure 1000's of unique mainframe terminal resources w/o a lot of manual mousing & typing.

4) Automated desktop operating system administration for Win9x and WinNT workstation. Includes registry hacking, control panel applet hacking with the Control Manager extender, automated Win9x login to a network (similar to WinNT admin auto logon feature), file manipulation, etc...

5) Dedicated software distribution tasks to be performed in the absence of ZenWorks or SMS (if SMS can really be counted at all as a software distribution tool).

6) Custom integration of disparate applications so that one application (an ISP billing/provisioning package) can manage user accounts in multiple operating systems, mail servers and RADIUS servers.

7) Automated file transfers, renames, etc... of .JPG files from a flash RAM card on my digital camera to my local hard drive.

8) More data and file manipulation to convert text and HTML data for my Dungeons & Dragons character sheets that get printed from Core Rules 2.0 Expansion but don't naturally come out in a really useful format.

9) Back a few years ago I used WinBatch to prepare Win3.1 systems for an automated upgrade to Win95 OSR2 by performing an extensive "pre-flight check" of the Win3.1 installation, the NetWare VLM client, the network adapters and the local machine's resources. This was done to make sure that it was 100% safe to do the Win9x upgrade and it was done w/o any assistance from a IS department tech; the end user could schedule the upgrade to happen at a certain time and then it did happen. The WinBatch scripts kept the IT folks up to date as to who was upgrading and when and what the results were.

10) With Telnet client functionality implemented in a WinBatch script I also perform some automated system management of midrange UNIX and OpenVMS systems.

11) More data manipulation with the ODBC extender and the OLE functions. A script takes 1000's of preventative maintenance instruction sheets stored as rows in an Access database, extracts them row by row, reassembles them as a coherent document, reformats the text, stuffs the text into a Word document and then uniquely saves each PM document under a proper title.

12) Yet another data manipulation script. This one takes text files for disk space fragmentation reports from an OpenVMS system and parses the report files and strips the data out and stores it in an Access database. This allows the report files that accumulate over a period of time to be analyzed in Excel 97 to look for trends in the level of disk space and file fragmentation on a per-volume basis. This type of analysis is not possible with discrete report files but is possible with a database where the data is accumulated over time.

13) Automatic documentation generator. This script reads comments in C/C++ source code and using tags similar to HTML extracts documentation from the functions in the source code. Allows documentation to be refreshed after source code updates w/o having to maintain documentation separately. Makes sure that full documentation exists within the source code for ready reference while performing maintenance coding yet still it allows separate documentation to be maintained for quick reference purposes.

14) Search and replace utility for managing automated finding and replacing of text in various types of files. Based on the file searcher extender and some other stuff.

15) General automation of repetitive tasks involving Windows applications. Uses OLE, Control Manager and DDE functionality in WinBatch to do this on a regular basis. Automated control of the creation of PDF files with Adobe Acrobat, automated management of establishing VPN connections and subsequent fixing of the WinNT IP static route table, etc...

16) Automated web scraping of email account.

17) Checking of POP3 mailbox for large attachments while traveling and using a dial-up Internet connection (slow) vs. home office use of ADSL connection (fast). Detection of mail messages with attachments prompts me to not allow my mail client to start downloading mail messages if I'm not going to be able to wait for the download to complete.

18) Automated conversion of audio tracks on CD's into MP3 files. Automated play list compilation for WinAmp. Working on accepting commands via the serial port (Infrared) from a hand held remote control unit to allow WinAmp to be directed (via WinBatch) from anywhere in my house. Having a 60GB library of MP3's and the ability to play any of them at any time w/o doing more than pressing a button is going to be a nice feature.

19) Automated management of some older PDA's (Sharp Zaurus) via the Serial extender. The Zaurus gets automatically detected by having the script send a "hello" packet out each serial port and waiting for a valid response. This in turn allows certain features in Win9x and WinNT (like UPS support, serial mouse) to be disabled on that port so as not to interfere with the functioning of the Zaurus and its desktop link software.

20) Automated extraction of GroupWise appointments and tasks via OLE for subsequent transfer to a Sharp Zaurus. Data manipulation is involved to take the extracted data and put it into a format suitable for importing into a Sharp Zaurus PDA.

21) Other TCP/IP socket programming, serial port programming and smtp/pop related custom communications tasks.

That's what comes to mind right now. I'm sure others will come to mind while I'm sleeping tonight. I'll post again if new ones turn up in the morning.


Another use of WinBatch.

One of my tasks at work is to make security changes that can affect from 1 to 2,200 Users.

Prior to making the changes, I send out an E-mail to all the affected Users so that they are aware of the changes.

I use WinBatch to go into our User database, extract the affected User ID's, create an E-mail listing the changes, and post out the E-mail using Microsoft Outlook.

This used to be a manual process, now it takes one click of the mouse-button and it's done automatically. What used to take nearly an hour now takes five minutes.

Apart from that, I use it for just about everything else that is not a once-off run.


I never even HEARD of WinBatch before 2 months ago, literally. My background is in UNIX and VMS. I've come to adore DCL and PERL for their ease of use and interpretive nature. I also enjoy working with C because of power as a programming language.

But with all that said, I LOVE WinBatch! Since I looked at my first code snippet two months ago, I was absolutely amazed by this scripting tool. For Windows based programming, this is definitely going to be my first programming tool of choice. It's very easy to use, very easy to learn (if you have programming experience... and even if you don't, since the code is very easy to decipher), and there are functions that are predefined that make life so much easier.

Sure, there are some things that I DON'T like about WinBatch. (And to be fair, I will list a couple of things) * The Help files are a bit confusing, especially with some of the examples. * Not being able to create menus (but I'll live).

(I am using 97D, so I'm not sure how much things have progressed since then. We are upgrading to a more recent version once we push out what is currently in production.)

I mostly use WinBatch for software install automation. That is it's primary function here. I've also written little utilities for parsing data, modifying files, and just yesterday wrote a thousandths placer format routine. One of the bigger tasks was writing a GUI that our helpdesk can use to monitor remote workstations and do some preventive maintenance on them as well.

WinBatch is definitely a tool that once I get a few more paychecks, is going on my workstation at home.


P.S. One last rave... I love the way you can manipulate windows and do API calls very simply with WinBatch. Keep up the good work, folks!

Another use:

I started with WinBatch 95 and was previously a VMS guy who used DCL. I've written many NT services in WinBatch. Services pose some particular challenges do debug - especially with older versions of WB.

- One project included a remote installation GUI with a service to provide automatic failure of DHCP servers should the primary become unavailable. DHCP is one of the few MS services that have no fault tolerance. Service periodically pushed the backup database to as many as 5 participant servers. Stand-by servers were able to load a very recent DHCP database and continue operation. GUI had to remotely the service remotely to all servers involved and check many settings related to DHCP.

- I've written a software distribution system that uses user groups and WB to centrally administer all software distribution for several thousand NT workstations for several of my customers. Many of the customers' users are in manufacturing and the users have no rights on the workstation. This system relies on a service running on all workstation with local admin privs to install software, perform virus updates and track software inventory for licensing as well as hardware inventory. I use WinBatch to program the support staff management side of this and remote software installation. I've used nearly every function in the NT extender extensively. The HW inventory used WinMetric() calls, the IPGrabber extender and lots more. This system started out in WB95 when I spent hours looking for NT command prompt utils that I could pipe to a file. Over the years, I've been able to retire most of these utils, preferring to use new WB extensions.

- I've used WB for one-off programs to migrate several thousand users from one domain to another. Also used it to audit account domains - to check for adherence to user account standards and to alter, en mass, terminal server user profile settings (thousands at a time). WB lets us automate things that would take man-months of manual work. There is no doubt that WB is so capable and so extensive a language that we have to be very thoughtful how we use it. There are very few corners of Windows that it cannot access. We have enough power to cause massive damage if we delve into things like full scale account database changes, automatic service installation, automated process termination and such.

Since you're asking let me give you some of the most important additions (as I see it):

- Adding a real debugging environment has been the most important addition. - Adding tracing to a log file has made debugging services much less tiring. Since NT4 SP4 (I believe) we can now create a service that connects to the network with credentials and has access to the desktop (interactive service). It would be very nice to have a "WinBatch Studio" service and I've thought about using SRVANY to start WBStudio in the same security context as the service I'm developing to make debugging easier. - The removal of variable space limitations. Buffer manipulation is terrible at best. List variable are great. - The continuous improvement of existing extenders. I have made a habit of checking for new versions of DLLs moments before I need a function I know is not in WinBatch, simply because I've assumed I knew what WB was capable of, written a program (the hard way), only to discover that a new extender was out that solved my problem. VChecker was very welcome to speed this process.

- Please keep working on the AD extender. We need a way to easily access AD contents. Please keep it as simple as the current NT extender to understand and use.

- Please enhance the CPU extender. - How about a performance monitor extender that allow us to access performance counters by the counter names and classes seen in perfmon.exe.

Bottom line - I've made a decent living in the last few years at least in part because of my knowledge and use of your product. I'm not a programmer, I'm a network consultant, but I've done several things with WB for my customers that I would not even have attempted with any other product or tool available today.


I use WinBatch a lot for tasks around the lab. Often new equipment comes with software which doesn't do quite what you want and you are faced with two options: Write new software or use the limited software. That's where WinBatch comes in. I often make better interfaces with the dialog editor which accomplish many task at once. Also I use it to string together a whole army of "limited" software packages to accomplish various tasks. For example:

Automated Laser beam profiling ------------------------------- - WinBatch calls a program to move a CCD camera into the path of the beam. - WB calls another program to take an intensity profile. - WB does some computing to decide if this is a worthy beam - if so it send the intensity profile to a graphical package for some massaging then WB creates an HTML page with the exported picture. - if not a worthy beam, it moves the camera to the new location it predicts will be worthy and tries again

WinBatch allowed two of us to put together this gizmo in a few months. It really helped speed along this proof of concept project.

I also use WB to reformat data files from various lab instruments so that I can use pre-existing code to do data analysis. This saves tons of time since re-writing the C code for every possible file type from all the various instruments would be a hopeless task. Now I just re-arrange everything with a few lines in WB.

With the new GPIB extender I plan to take a more active role in controlling the instruments directly rather than with that poor "limited" software I referred to.

If I had one wish it would be to be have a graphing window display while I control these instruments so I can see what's happening while collecting data. (A window which stays open and refreshes everytime a data point is added to the file? Haven't thought about it much yet. Something like an API or can I already use APIs??) I'm not sure this is possible, but you can prove me wrong. (Please do!)

It's a great tool and you should work on reaching the lab crowd. Everyone I've recommended it to in labs, absolutely loves it!!

Thanks, -CS

I primarily used WinBatch for tasks automation. And it's great!

Here is my most recent application: Since 3 months I have a new job. As an it professional, I want to do things efficiently.

The guy I was replacing was very badly organized and in the network, the documents were placed everywhere with no structure!

So then going to each computers looking through each folders and ... was a hell of a job!

So I created a script that scan's the computer's Hard Drive, looks for all folders that contains up to 10 file extensions and then creates an batch (.bat) file containing the xcopy command with the appropriate switches (One batch file for all the xcopy's).

This script save me days of work. Worth a couple of hundred bucks!!

Nut it's not all, all the help I received for the guys at this web board is a lot more valuable then the actual price of WinBatch!

I give a big thanks to Marty for all the help I received for him. And thanks to all of you guy's!! You make my job a lot easier!

PS: Sorry for my bad English!


Well I use WinBatch anytime I think it will be hard to explain to an average user or when I need something that need to be done 100 of times. I also customize "standard" tools like EDI converter, interfaces there is always a point where you need to act.

a) ftp copying to interface with UNIX machines or hide the software depot to users. b) data manipulation c) Write a lot of automation programs for SAP R3. d) PC deployment and update e) NT login script f) backup in zipped manner for average user g) generate PDF h) automatic conversion of data I) send mail to make me now something is going wrong in an app. j) let user mail instead of faxing without knowing it k) some OLE with anita to automate unix app in VT220 mode (I guess I will do it it on a host in 3270 real soon). l) read bar-codes in serial mode (but I do really prefer Delphi and Async Pro by now)


I work in the technical development area for a bank. We have 850 NT 4.0 servers in 850 locations throughout the South Eastern US. Yes, this is a lot of servers - when we designed the new system it was believed (by some) that the cost of a WAN would be excessive (after all, the old system managed to do everything on a time sliced 56K line to the mainframe) and so we have 850 independent domains/servers to manage through modems. We are in the process of converting the branches to a WAN.

The largest system we have designed using WinBatch is a software delivery/file movement system. This system delivers program updates to 850 branches and is comprised of 10 programs that interact with each other.

Another major system keeps the data tables used in the branches up to date. There are 5 primary data files downloaded to the servers nearly every night and loaded into MSSQL tables. There are another 65 tables that are updated with programs written in WinBatch.

Three years ago we designed a software auditing system in WinBatch. We are lucky in that all of our servers and workstations in the branches run the same set of software. The system scans each server and workstation for specified file types, compares them against a list of programs that should be present and then returns the data to a central location. Another WinBatch program is used to compile the audit results from each server into seven reports. From those reports we can tell what software is missing, if software has been loaded, etc.

Another system designed in WinBatch was a release (software update) tracking system. Each release is given a unique name. The system took messages returned from the 850 servers and compiled so that we could instantly tell when a site did not load a release correctly, what sites had loaded a particular release, etc. That system was used for about 2 months until communication problems rendered it useless - the programs worked and compiled the data that was returned but not all of the data was always returned.

A program I recently wrote in WinBatch interfaces to a transmission program called XCOM that allows me to create a series of jobs to send and execute a batch file on an set of desired servers.

Another cute program that we wrote in WinBatch allows us to encoded a password into a series of numbers based on a cute algorithm - the encoded password can then be loaded on remote systems. We use this to change the main system passwords on all 850 servers.

We have written several programs to script the installation of GUI based programs when we did not trust the users to type in information correctly. In addition, a workstation backup and restore system based around the product NovaDisk (from NovaStor) was scripted using WinBatch so that the user only had to click one button to start the restore.

Many of the programs written make use of WinBatch's ability to manipulate the registry.

Some of the more useful little programs include a program to change the time and date stamp on any file - extremely useful when doing time/date based testing. We just used the Windows NT networking extender to change the sign on account for a service to another account.

My favorite commands center around the File handling, list manipulation and string manipulation. There are so many useful things that can be so easily with these commands.

In the past 4 years we have written about 200 different programs to support the branch servers, update data, move files, etc. Out of the 200 program I would venture that 175 of them are in WinBatch.



WinBatch is everywhere !!! Login Scripts, Software distribution, ASCI to SQL conversion for dB uploads, software startup checks, version control, filescanning over all NT clients, ...... it's just everywhere and I guess once you've got it in your network, you never get it out anymore :-), no virus scanner can hold it !! :-)


I have no programming formation, but I developed a commercial application I distribute to health professionals. I have a DOS version completely developed in compiled batch files (using BATCOM).

After unsuccessful attempts to work with contracted programmers, I discovered WinBatch and developed the Windows version myself.

I LOVE working with WinBatch. I used it for my installation routine, CD production and so on. I also use it for:

1) Automatic conversion of documents from different formats: .DOC >> .PDF ASCII >> ANSI ASCII >> HTML 2) Automatic creation of ZIP files 3) Merging DATA between multiple PCs 4) Automatization of numerous tasks...


stuff I've used WBT for:

* a big complicated program to automate outbound faxing for my users. handles graphics conversions, logging, a bunch of stuff.

* another complete graphics app that works by "controlling" other apps. has evolved into complete company document imaging/storage/retrieval app.

* many many smallish utilities. Esp Internet related things, like check that web page is working, check that DNS server is working, check that e-commerce server is working, send email with attachments. over 50 programs in production use.

In many cases, I've grafted in a perl routine to handle things WBT does poorly. wish I didn't have to.

In general I REALLY wish there was some better acknowledgment that seriously large programs get written in WBT (for better or worse), and the language needs features to support that. (See my many messages in your wish-list pile).

Thanks for asking this question! Just knowing that someone is thinking about what we use wbt for makes me feel like there might be some future structural improvements!


Hi, I am a farmer and use it for milking cows and collecting potatoes mainly. I'm waiting for the tractor extender.

Here some stuff I use it for in my spare time as a system administrator.

* Novell Administration (mainly ZENWorks) The free Zenworks-Starter-Pack for Application-Management does not support complex conditions for execution and installation. WinBatch does the job $7000 cheaper and better. We do Printer installation on the fly Distribute Apps, Files, Rights to Remote Sites at nighttime error-correction scripts run at login

* Menu-System for Citrix Metaframe Apps with rights based on Domain-Groups.

* Web-Redirection Tool for Citric Metaframe. (Allows hyperlinks or double-clicks to be executed on the local machine and not on the Metaframe machine)

* GUI for the cheap F-Prot DOS virus-scanner with ftp-auto-update of signature files

* synchronize directory trees at nighttime.

* analyze logfiles (a pain !!)

* several sendkey-scripts for Database-Backups (Navision Financials etc.) runs for 14 months now surprisingly without errors

* complete setup-routines with registry updates OCX-register etc. for third party companies

* Several conversion-utils for textfiles

* A GUI for the outstanding Russian Remote Control Tool RAdmin.

* A Printer-Driver that creates a GroupWise Mail-Attachment as PDF-File with Ghostscript.

* Converts PlotFiles to Tiff with spicer Imagination and sends them to an OCE-Plotter. (Saved $25000 because could buy cheaper plotter when file conversion is done on a PC) * kick any Software that can read the commandline

* Do bad things like close programs on users machines or kick them out of the system.

I love WinBatch, but there a some things that really slow down my work: Most important: Why is there no context sensitive help in WinBatch Studio ? If I press F1 I get the WinBatch Studio Helpfile and not the WIL helpful. I had to replace it. (It's a pity: The WIL-Helpfile ist really great with all the nice samples in it !!)

Editor note: For context sensitive help - place cursor on function and either right-click or push Shift+{F1}. Insert WIL functions by right-clicking and selecting Insert WIL Function.

Very useful: a syntax highlighting like VB. I know about 200 Functions now, but I always forget the number and order of arguments. Do you plan to Integrate WinBatch into Visual Studio 7 like Active State does with perl ?

Useful: a Dropdown combo showing all the subroutines. One of my larger scripts has about 600 lines and 15 subroutines. Here I get really lost.

No grep: I think most customers use WinBatch for some kind of system administration. And I bet that they all have heaps of ASCII logfiles. But WinBatch cannot extract any patterns working with regular expressions. to extract warnings from a big logfile a send them to the admin. There is not even an easy way to do a binary search/replace with wildcards. For this I still have to use perl, ugh ! I recommend to create an interface extender to ygrep a very stable DLL from a French guy.


Lots of stuff. I have been aware of WinBatch for years now, but I never really gave it a good shake until a year ago. After a month of playing, I had that check for WinBatch and compiler written and sent! Some recent uses:

* a new NT login script that maps drives, checks for updates to software, verifies virus definition dates.
* a small program that allows users to press PrtScn over and over and captures the images in a folder on their desktop.
* An upgrade utility that upgraded our mainframe emulation program, upgraded our anti-virus program, renamed the workstation, and deleted all of the temporary files out of the Temp folder.
* a registry hack that solved a pesky problem for us (but who trusts users to go into the registry?) -- I trust WinBatch!
* I am working on an app that sticks an icon in the system tray, the user clicks on it and a form pops up that they fill out with a problem and it gets dispatched to the I/S dept. (where we can immediately choose to ignore)

Wow, I have to agree, it's worse than a virus... I worked here very happily for a year without WinBatch... but my replacement will HAVE to learn it! It's everywhere!