让Vbscript在linux环境下运行

时间:2014-12-20 17:21:53

标签: unix vbscript

我编写了一个代码,以便它可以从文本文件中读取数据并弹出IP地址并在VBScript中发送电子邮件。

代码成功运行。

Const ForReading = 1

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("Your File Name Here.txt", ForReading)

strSearchString = objFile.ReadAll

objFile.Close

Set objRegEx = CreateObject("VBScript.RegExp")

objRegEx.Global = True   
objRegEx.Pattern = "\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}"

Set colMatches = objRegEx.Execute(strSearchString)  

If colMatches.Count > 0 Then
    For Each strMatch in colMatches   
       Wscript.Echo strMatch.Value
    Next
End If

需求已经更改,并且需要在unix服务器中运行相同的进程,因此我必须编写VBScript以便所有上述操作都在unix中进行。

1 个答案:

答案 0 :(得分:2)

不,你不能在Linux / Unix上运行VBScript。您需要使用这些平台上可用的语言重新实现脚本,例如shell(bash,ksh,(t)csh,...),Perl,Python或Ruby。

由于您的脚本似乎是从文本文件中提取IP地址,我说在这里您最好选择shell脚本。在Linux发行版上,默认shell通常为bash,因此我建议您从Bash Guide for Beginners开始。您正在寻找的工具是grep。将它与参数-P(Perl样式表达式)和-o一起使用(仅显示匹配项):

grep -Po "\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}" /path/to/your.txt

此外,可以通过对点号段进行分组来缩短正则表达式,例如像这样:

grep -Po "\d{1,3}(\.\d{1,3}){3}" /path/to/your.txt

如果要从脚本运行此文件,该文件看起来应该如下所示:

#!/bin/sh

grep -Po "\d{1,3}(\.\d{1,3}){3}" /path/to/your.txt

shebang定义了应该使用哪个解释器来执行内容。