Windows batch script from unix bash

mokkan
mokkan used Ask the Experts™
on
I am not a windows guy and I need to convert the following script to windows batch.


LOCKFILE=/tmp/$LOCKFILE
case "$1" in
start)
    touch $LOCKFILE
    poweron.sh;;
    exit 0;
stop)
    rm $LOCKFILE  
    poweroff.sh;;
    exit 0;
    ;;
monitor)
    if [ -a $LOCKFILE ]
    then
        exit 110
    else
        exit 100
    fi ;;
*)
    echo "Usage: $0 {start|stop|monitor} lock_file
    exit 1
    ;;
esac
Comment
Watch Question

Do more with

Expert Office
EXPERT OFFICE® is a registered trademark of EXPERTS EXCHANGE®
Most Valuable Expert 2012
Distinguished Expert 2018

Commented:
What you posted just looks like an init script for two other scripts.

What does poweron.sh and poweroff.sh do?

Author

Commented:
I am trying to learn the batch syntax

Here is a smiple perl script. How do I do it in windows batch?


$LockFile = "C:\\scripts\\filename.id";

if (-f "$LockFile") {
      exit(500);
} else {
      exit(600);
}

Author

Commented:
any help
Exploring ASP.NET Core: Fundamentals

Learn to build web apps and services, IoT apps, and mobile backends by covering the fundamentals of ASP.NET Core and  exploring the core foundations for app libraries.

RobOwner (Aidellio)
Most Valuable Expert 2015

Commented:
I would recommend not even looking at batch files and going right for a powershell or vbs script.

A rough untested conversion might be:
$LOCKFILE=$args[1]
switch ($args[0]) {
    "start" {
        set-content -Path ($LOCKFILE) -Value ($null)
        ./poweron.ps1
    }
    "stop" {
        Remove-Item $LOCKFILE   
        ./poweroff.ps1
    }
    "monitor" {
        if (Test-Path $LOCKFILE ) {
            exit 110
        }
        else {
            exit 100
        }
    }
    default {
        "Usage: $0 {start|stop|monitor} lock_file
        exit 1
    }
}

Open in new window



What context does the script run?  It looks as slightwv says as being an init script.
Most Valuable Expert 2012
Distinguished Expert 2018
Commented:
>>Here is a smiple perl script. How do I do it in windows batch?

The -f just checks if a file exists and takes appropriate action.  In the case of the code you posted, it exits with a different return value.

To check if a file exists in a BAT file, it is almost as simple.

An example of this can be found on Microsoft's site at:
http://support.microsoft.com/kb/65994

None of this will really help unless you answer the question I asked in the first post:
What does poweron.sh and poweroff.sh do?

These seem to be the important pieces to the script you posted.

Author

Commented:
Thank  you

Do more with

Expert Office
Submit tech questions to Ask the Experts™ at any time to receive solutions, advice, and new ideas from leading industry professionals.

Start 7-Day Free Trial