我可以将此bash脚本转换为适用于Windows的内容吗?

时间:2014-09-14 22:31:22

标签: bash powershell batch-file

我们有一个bash脚本,用于丰富我们在Linux Redhat上运行的一个应用程序中的一些数据,现在我们已经将应用程序移动到了Windows服务器2008,我需要让脚本运行,它&#39 ;一个简单的脚本,所以如果我可以将它转换为Windows批处理文件,以便我可以直接运行它,否则,有没有办法使用Windows PowerShell运行t?

脚本如下:

#source OID.1.3.6.1.4.1.9.9.187.0.1
#source line /scripts/bgp/bgp.sh "$mga" "$text($2)" "$*"
nbr=$(echo $3 | cut -d . -f 12- | cut -d : -f 1)
if [ $2 = "idle" ]
then
/opt/OV/bin/nnmsnmpnotify.ovpl -v2c -a "$1" localhost .1.3.6.1.4.1.11.666.1.1006 \
.1.3.6.1.4.1.11.666.2.1.0 OctetString "$2" \
.1.3.6.1.4.1.11.666.2.1.0 OctetString "$nbr"
else
/opt/OV/bin/nnmsnmpnotify.ovpl -v2c -a "$1" localhost .1.3.6.1.4.1.11.666.1.1007 \
.1.3.6.1.4.1.11.666.2.1.0 OctetString "$2" \
.1.3.6.1.4.1.11.666.2.1.0 OctetString "$nbr"
Fi

非常感谢你的帮助

天钩

1 个答案:

答案 0 :(得分:1)

批处理文件方法:(代码的字面翻译。)
下面的代码片段相当容易理解。因此没有提供任何解释。如需更多帮助,请for /?& cmd.exe提示符中的if /?用于语法。如果仍需要任何帮助,请在答案下方发表评论。

@echo off
setlocal enabledelayedexpansion
set inp=%3
for /f "delims=. tokens=11,*" %a in ("%inp%") do set cut1=%b
for /f "delims=: tokens=1" %a in ("!cut1!") do set nbr=%a

if "%2" == "idle" (
    C:\path\to\opt/OV/bin/nnmsnmpnotify.ovpl -v2c -a "%1" localhost 1.3.6.1.4.1.11.666.1.1006 .1.3.6.1.4.1.11.666.2.1.0 OctetString "%2"     .1.3.6.1.4.1.11.666.2.1.0 OctetString "!nbr!"
) else (
    C:\path\to\opt/OV/bin/nnmsnmpnotify.ovpl -v2c -a "%1" localhost 1.3.6.1.4.1.11.666.1.1007 .1.3.6.1.4.1.11.666.2.1.0 OctetString "%2"  .1.3.6.1.4.1.11.666.2.1.0 OctetString "!nbr!"
)

注意:正确填写.ovpl等路径。您需要为.ovpl文件安装解析器&可能需要手动设置.ovpl的open-with选项,或者为该ovpl文件提供正确的命令作为前缀。例如而不是./x.py使用python ./x.py

相关问题