2012-03-27 74 views
-5

我得到了一个bash脚本,用于将文件从沙箱传输到主机。 沙盒目录中的文件只有在更年轻时才会被传输,这意味着它们之前已被“触及”。不幸的是,cygwin在windows下引起麻烦,所以我需要另一种语言的脚本,或者我需要一些像Windows下的cygwin一样的东西。 该脚本只有20行左右,但我没有任何线索如何将其转换为另一种语言(特别是像触摸,使命令,海湾合作委员会,getopts,设置-e命令) 如果有人发现这一点,我会很高兴很容易做到,并将其转换:将Bash脚本转换为Perl/VBS /任何其他Windows兼容语言

# 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 [email protected] 
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 
+0

为什么每个人都给我坏代表而不是帮助我? – Sven 2012-03-27 13:10:17

+6

,因为这不是“为我工作”的网站。你需要提出更具体的,可回答的问题。阅读[常见问题](http://stackoverflow.com/faq) – 2012-03-27 13:38:03

+0

有Windows bash端口,例如在cygwin,msys。 – 2012-03-28 08:53:05

回答

3

您可以将shell脚本转换成一个批处理文件,它是这里介绍:How do I convert a bash shell script to a .bat file?

另外这里是对应于bash和批处理命令的列表:http://tldp.org/LDP/abs/html/dosbatch.html

+6

是的,有很多人可以。你可以举例。阅读链接页面。明白它。转换你可以。然后回到这里,问一些你无法弄清楚的命令的具体问题....或者雇用某人为你做你的工作。 – EBGreen 2012-03-27 13:45:46