2014-12-20 3 views
0

Я написал код, чтобы он мог читать данные из текстового файла и всплывать IP-адрес и отправлять электронное письмо в VBScript.Сделать Vbscript для работы в среде linux

Код успешно прошел.

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.

+0

И что вы уже пробовали? Вы получаете ошибки? Какой язык вы пытаетесь переписать? Stack Overflow не является форумом для работы над вами, это для ответа на вопросы, когда вы пытаетесь сделать это самостоятельно. – jakerella

+0

Я знаю, мне просто нужна основная идея (например, мы можем запустить тот же скрипт в unix env) или мне нужно изменить весь код? Куда мне начинать? Я новичок в работе над unix. –

ответ

2

Нет, вы не можете запускать VBScript в Linux/Unix. Вам нужно повторно реализовать свой скрипт на языке, который доступен на этих платформах, например shell (bash, ksh, (t) csh, ...), Perl, Python или Ruby.

Поскольку ваш скрипт, похоже, извлекает IP-адреса из текстовых файлов, я бы сказал, что ваш сценарий оболочки будет вашим лучшим выбором здесь. В дистрибутивах Linux оболочка по умолчанию обычно равна 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 определяет, какой интерпретатор следует использовать для выполнения контента.

+0

Хорошо сказано, thnx для информации. Должен ли я писать сценарий в формате .sh для автоматизации в unix? Могу ли я проверить результат в командной строке окна? –

+0

@KrishKrishna Я бы рекомендовал запустить его из сценария (см. Обновленный ответ). В то время как его запуск также возможен, для этого потребуется некоторое объявление для кавычек/экранирование, поэтому его проще поместить в скрипт и запустить. Независимо от того, можете ли вы проверить результат, зависит от того, как вы запускаете скрипт на удаленном хосте. ['plink'] (http://the.earth.li/~sgtatham/putty/0.63/htmldoc/Chapter7.html#plink), например, вернет результат команды. –

+0

Отличная помощь. –

Смежные вопросы