2017-03-29 6 views
0

私はExcelでIPアドレスの数百を持っているが、このようバッチスクリプト:ポートテスト

System name: Server name: Server IP Target Port: Environment: 
AddressWash - Crontab jobs/Scripts hostname.com  123.456.789 22 PROD 

ファイル私のような的環境でこのエクセルのみポートとIPから取ると、それをテストしたいです。 IPに到達できるかどうかは、結果が表示されます。結果は、何らかの形で整形された1つのtxtファイルになければなりません。

これは可能ですか?ありがとうございました。

+0

私はそれが可能であると確信しています。しかし、このサイトでは、自分で何をするかについてのみ助けを得るでしょう。あなたの投稿は、あなたが誰かのためにそれをするために釣っているように見え、それはマイナスポイントを得るでしょう。カウンターを見てください(それは私ではありませんでした)。 – Variatus

+0

ああ、このような質問のために作られたページをお勧めしますか? – Delirium

+0

elance.comを試してみてください – Variatus

答えて

0

まず使用このスクリプト(例えばtoCSV.batのようにそれを保存).ITをCSVとしてExcelファイルを保存します(引数は完全なパスである必要がありますが):

@if (@X)==(@Y) @end /* JScript comment 
    @echo off 


    cscript //E:JScript //nologo "%~f0" %* 

    exit /b %errorlevel% 

@if (@X)==(@Y) @end JScript comment */ 


var ARGS = WScript.Arguments; 

var xlCSV = 6; 

var objExcel = WScript.CreateObject("Excel.Application"); 
var objWorkbook = objExcel.Workbooks.Open(ARGS.Item(0)); 
objExcel.DisplayAlerts = false; 
objExcel.Visible = false; 

var objWorksheet = objWorkbook.Worksheets(ARGS.Item(1)) 
objWorksheet.SaveAs(ARGS.Item(2), xlCSV); 

objExcel.Quit(); 

はその後thisを確認してください。最終的なスクリプトがあります(結果を変更してファイルにリダイレクトすることができます)。おそらくExcelブックとシートの名前を変更する必要があります:

@echo off 
setlocal enableDelayedExpansion 
call toCsv.bat "%cd%\Book1.xlsx" Sheet1 "%cd%\csvIP.csv" 

for /f "usebackq skip=1 tokens=3,4 delims=," %%a in ("csvIP.csv") do (
    for /f %%# in ('powershell "$t = New-Object Net.Sockets.TcpClient;try{$t.Connect("""%%~a""", %%~b)}catch{};$t.Connected"') do set "open=%%#" 
    echo %%a %%b !open! 
)