Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我可以把这个bash脚本转换成在windows上运行的脚本吗?_Bash_Powershell_Batch File - Fatal编程技术网

我可以把这个bash脚本转换成在windows上运行的脚本吗?

我可以把这个bash脚本转换成在windows上运行的脚本吗?,bash,powershell,batch-file,Bash,Powershell,Batch File,我们有一个bash脚本,用来丰富我们在Linux Redhat上运行的一个应用程序中的一些数据,现在我们已经将该应用程序移动到windows server 2008,我需要运行该脚本,它是一个简单的脚本,如果我可以将其转换为windows批处理文件,以便我可以直接运行它,否则,有没有办法使用windows powershell运行t 脚本如下: #source OID.1.3.6.1.4.1.9.9.187.0.1 #source line /scripts/bgp/bgp.sh "$mga"

我们有一个bash脚本,用来丰富我们在Linux Redhat上运行的一个应用程序中的一些数据,现在我们已经将该应用程序移动到windows server 2008,我需要运行该脚本,它是一个简单的脚本,如果我可以将其转换为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
非常感谢你的帮助

Kareem

批处理文件方法:(代码的直译。)
下面的代码片段相当容易理解。因此没有提供任何解释。有关更多帮助,请在cmd.exe提示符下运行
For/?
&
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,或者提供适当的命令作为该ovpl文件的前缀。e、 g.不要使用
python./x.py
而使用
python./x.py

有什么问题吗?PowerShell可以这样做,但如果您告诉我们这些不熟悉bash的人输入和预期输出,这会有所帮助。
是否可以将此bash脚本转换为在windows上工作的脚本?
是的<代码>我可以转换…你告诉我!好吧,除了我的粗鲁,你可以看到这个脚本有两个部分-1:字符串操作。2:if/else语句。使用
cmd
也可以实现这两种功能。因此,请尝试在batch/powershell中搜索如何执行这些操作除非您尝试在此处发布代码,否则很难在此处获得帮助。祝你好运。@jm666谢谢,刚刚下载了它,我可以使用windows命令提示符下的命令吗?如果我将脚本附加到应用程序,我是否必须告诉应用程序使用cygwin?或者它将以本机方式运行?@anishsane感谢您的反馈,请您告诉我用于剪切分隔文本的cmd命令好吗?非常感谢您的回复,请您指导我到一个教程,如果我以后需要,可以在那里学习如何编写此类脚本。一般规则:1。把你的程序分成块。2.搜索如何对这些单独的块进行编码。3.谷歌。