Итак, это мой первый пост, и я потратил чуть более двух часов, просто пытаясь понять, как это сделать.
Итак, в основном я написал инструмент сканирования портов через Batch и использовал программу под названием tcping, и у меня есть переменные с именем% scan% и% openport%, которые являются текущим открытым портом. Я хочу записать этот порт в текстовый файл, а затем записать новый порт, когда он изменится, но я могу записать только новый порт, так как не могу записать переменную дважды двумя разными способами, потому что он просто обновит% openport% с новым портом.
Вот мой код
@echo off
:: BatchGotAdmin
::-------------------------------------
REM --> Check for permissions
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe"
"%SYSTEMROOT%\system32\config\system"
REM --> If error flag set, we do not have admin.
if '%errorlevel%' NEQ '0' (
echo Requesting administrative privileges...
goto UACPrompt
) else ( goto gotAdmin )
:UACPrompt
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
set params = %*:"="
echo UAC.ShellExecute "cmd.exe", "/c %~s0 %params%", "", "runas", 1 >>
"%temp%\getadmin.vbs"
"%temp%\getadmin.vbs"
del "%temp%\getadmin.vbs"
exit /B
:gotAdmin
pushd "%CD%"
CD /D "%~dp0"
::--------------------------------------
REM The code Up there is Property of https://stackoverflow.com/questions/1894967/how-to-request-administrator- access-inside-a-batch-file
REM All code below is coded by Paradex
:PortScan
@echo off
set /p Ip=Enter a IP or Website to ping:
cls
goto :LoopScan
:LoopScan
set scan=0
set /a scan=%scan%+1
if "%scan%"=="2" goto :LoopScan1
goto :Checkport
:LoopScan1
set /a scan=%scan%+79
goto :Checkport
:Checkport
tcping -n 1 -a -s 1 -w 1000 %ip% %scan%
tcping -n 1 -a -s 1 -w 1000 %ip% %scan% | findstr "Open"
if %errorlevel% == 0 (
cls
color 0a
echo Port is Open.
set openport=%scan%
goto :writedata
) else (
cls
color 4
echo Port is Closed.
)
endlocal
goto :LoopScan1
goto :end
:writedata
if %openport% == %scan% (
cls
goto :loopscan1
) else (
cls
)
echo Open Ports For %ip% > logfile.txt
echo ------------------- >> logfile.txt
echo %openport1% >> logfile.txt
goto :loopscan1
:end
Извините, если вопрос расплывчатый, я никогда раньше не публиковал здесь