MiniM. Saving time.


| About | Download | Tools | Knowledge Base | How to Buy |

MiniM Overview

Getting Started

Download

Documentation

Tools

Cache Tools

GT.M Tools

Knowledge Base

FAQ

Contacts

Copyrights

MiniM Knowledge Base | Jul 2, 2010

Using minim.exe from batch files.

Some integration tasks require use MiniM Database Server from batch files (.bat and .cmd). This article describe some possibilities how to call minim.exe from batch environment and exchange data.

Further examples assumes that the server is installed in the directory w:\minim and that execution of command files produced on the server.

Call MiniM process with output to screen or to file

MiniM process provides option -std to use standard input-output channels (stdin-stdout) and option -h to halt process after end of commands. To indicate that it is necessary to process commands provided option -x. Example:

file 01.bat:

@echo off
set minim=w:\minim\bin\minim.exe
%minim% -std -h -x "w $zd($h),!"
While this batch file executes, on the screen is displayed current date.

The same result we can write to file by using redirection:

%minim% -std -h -x "w $zd($h),!" > report.txt
Here process's output is written to the file report.txt.

How to send several lines of commands from file

To send to MiniM process several lines of commands we can use text file with MUMPS commands. To tell to use file instead command argument, option -x provides special symbol @ (use file's content). For example, let the file 02.m contains MUMPS commands:

file 02.m:

w "Now: ",$zd($h),!
w "Version: ",$zv,!
Then to call MiniM process we use symbol @:
file 02.bat:

@echo off
set minim=w:\minim\bin\minim.exe
%minim% -std -h -x @02.m
While this batch file executes current date and version is written to screen.

Send commands using redirection

To send commands to MiniM process we can use standatd input channel using option -std and redirection symbols | è <.

file 03.bat:

@echo off
set minim=w:\minim\bin\minim.exe
echo w $zd($h),! | %minim%
Here MiniM process reads line-by-line from standard input channel (stdin) and executes as MUMPS command sequence. MiniM process can automatically determine that one is running with input redirection and use options -std and -h by default even ones are not specified.

Pass parameters using batch files preprocessor

While MiniM process does not get parameters from batch file, process can operate only database state. To use parameters from batch file we should pass ones to MiniM process. One of possibility to transfer data is batch file preprocessor, which can expand special symbols %%. This is parameter sybstitution. For example, we can create command to execute by MiniM process:

file 04.bat:

@echo off
set minim=w:\minim\bin\minim.exe
set a=123
%minim% -std -h -x "w \"Variable a is %a%\",!"
While this batch file executes, message is printed to the screen:
Variable a is 123
To use parameter substitution programmer should use right syntax decoration to make correct MUMPS command. Double quote (") need to be doubled.

Pass parameters using environment variables

Second possibility to pass parameters to MiniM process are environment variables. Batch file can assign environment variable and ones are accessible by MiniM process using group of functions $v("proc"). Example:

file 05.bat:

@echo off
set minim=w:\minim\bin\minim.exe
set a=123
%minim% -std -h -x "w $v(\"proc\",9,\"a\")_456,!"
Here batch file assign environment variable a and call MiniM process. MiniM process use function $v("proc",9) to read environment variable content and concatenate with string 456. Next common message is printed to the screen:
123456

Accepting parameters from MiniM process using temporary batch file and environment variables

Batch file can accept parameters from MiniM process using child batch file creation. This temporary batch file can contain command sequence to assign environment variables in batch file notation. After creation one parent batch file can call temporary batch file and accept environment variable's changes. Example:

file 06.bat:

@echo off
set minim=w:\minim\bin\minim.exe
set a=123

echo First value is %a%

%minim% -std -h -x "w \"set a=\"_$v(\"proc\",9,\"a\")_456" > second.bat

call second.bat
del second.bat

echo Second value is %a%
Here batch file assign environment variable a and call MiniM process. MiniM process read environment variable content and make some operation (concatenation in this example). Common result are written to temporary batch file using output redirection (file second.bat). Parent batch file call this temporary file and accept environment varible changes. While this batch file executes to screen is written messages:
First value is 123
Second value is 123456

Download batfiles.zip (zip, 1.3Kb)

Eugene Karataev
support@minimdb.com


Copyright (C) Eugene Karataev
Info Support