我在Excel文件中有数百个IP
System name: Server name: Server IP Target Port: Environment:
AddressWash - Crontab jobs/Scripts hostname.com 123.456.789 22 PROD
我想从这个excel端口和IP环境中取出并测试它。如果我能够到达IP,结果应该显示给我。结果应该以一种txt文件格式化。
这甚至可能吗?谢谢。
答案 0 :(得分:0)
首先使用此脚本(例如保存它像toCSV.bat
)。它会将excel文件保存为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。这是最终的脚本(您可以更改结果并将其重定向到文件)。可能您必须更改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!
)