2017-03-29 1 views
0

내가 Excel에서 IP를 수백 내가 좋아하는 환경이 엑셀 만 포트와 IP 걸릴하고 테스트 할이배치 스크립트 : 포트 테스트

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

같은 파일이 있습니다. 내가 IP에 도달 할 수 있다면 결과는 나에게 보여야한다. 결과는 형식이 지정된 하나의 txt 파일에 있어야합니다.

그게 가능합니까? 고맙습니다.

+0

나는 그것이 가능할 것이라고 확신합니다. 그러나이 사이트에서는 자신이하는 일에 대해서만 도움을 얻을 것입니다. 귀하의 게시물은 누군가를 위해 낚시를하는 것처럼 보이며, 마이너스 포인트를 얻게됩니다. 카운터 (그것은 내가 아니었다)를보십시오. – Variatus

+0

아,이 질문에 대한 제게 만들어 줄 수있는 페이지를 권해 주시겠습니까? – Delirium

+0

elance.com을 시도해보십시오 – Variatus

답변

0

먼저 사용이 스크립트 (예를 들어 toCSV.bat처럼 저장) (인수가 전체 경로를 할 필요가 있지만) .IT는 CSV로 엑셀 파일을 저장합니다 :

@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을 확인합니다. 결과를 변경하고 파일로 리디렉션 할 수있는 마지막 스크립트는 다음과 같습니다. 아마도 엑셀 책과 시트의 이름을 변경해야합니다.

@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! 
)