将Bash脚本转换为Perl / VBS /任何其他Windows兼容语言

时间:2012-03-27 12:34:00

标签: perl bash powershell vbscript batch-file

我有一个bash脚本,用于将文件从沙箱传输到主机。 sandbox目录中的文件只有在它们更年轻时才会被转移,这意味着它们之前已被“触摸过”。不幸的是,cygwin在windows下引起了麻烦,所以我需要用另一种语言编写脚本,或者我需要一些像windows下的cygwin一样的东西。 该脚本只有大约20行,但我没有任何线索如何将其转换为另一种语言(特别是像touch,make,gcc,getopts,set -e这样的命令) 如果有人觉得这很容易做并转换它,我会很高兴:

# EXITING SCRIPT IF ERROR OCCURS
set -e

FORCE=false
JUSTPRINT=

# if parameter -f is given, force to transfer all files(no matter if new or not)
# if -n is given checking files
while getopts fn opt 2>/dev/null
do
case $opt in
f) FORCE=true ;;
n) JUSTPRINT="-n" ;;
?) ;;
esac
done

# deleting parsed options from command line
shift `expr $OPTIND - 1`


# refresh files that came with -f
if [ \( $FORCE = true \) -a \( $# -gt 0 \) ]
then
touch -c $@
fi

# Targets (dummy files for timestamp)
TARGETS=`for filename
     do
       if [ -f $filename ]
       then
         echo "../transport_dummies/\`basename $filename\`.dum"
       else
         echo "$filename"
       fi
     done`

# call script directory
echo $0
cd `dirname $0`

# creating sysfilterL.exe
if [ ! -f sysfilterL ]
then
echo "sysfilterL is created."
gcc sysfilter.c -o sysfilterL
fi

# Call Transport-Makefile with target
if [ $# -gt 0 ]
then
make --warn-undefined-variables $JUSTPRINT -f transportDE.mk reset $TARGETS
send_queueed
else
make --warn-undefined-variables $JUSTPRINT -f transportDE.mk
fi

1 个答案:

答案 0 :(得分:3)

您可以将shell脚本转换为批处理文件,此处包含:How do I convert a bash shell script to a .bat file?

此处还有bash和batch中相应命令的列表:http://tldp.org/LDP/abs/html/dosbatch.html