diff --git a/windows/bat/getwifipass.bat b/windows/bat/getwifipass.bat new file mode 100644 index 0000000..d7a87c7 --- /dev/null +++ b/windows/bat/getwifipass.bat @@ -0,0 +1,65 @@ +@echo off +chcp 1251 > nul +setlocal EnableExtensions, EnableDelayedExpansion + +set format=echo +set outputFile=wifi_passwords +set nextStr=0 + +if "%~1"=="/?" ( + echo %~n0 [/F ^] [/O ^< ^>] + echo Wi-Fi-. + echo. + echo /F ^ : + echo CSV csv-; + echo TEXT ; + echo ECHO . + echo BAT _: ^( bat-^). + echo - echo. + echo. + echo /O ^< ^> . - echo bat, . + exit /b +) + +if "%~1"=="/f" ( + if not "%~2"=="csv" if not "%~2"=="text" if not "%~2"=="echo" if not "%~2"=="bat" ( + echo ! + echo : csv, text, echo, bat. + exit /b + ) + set "format=%~2" + shift /1 + shift /1 +) +if "%~1"=="/o" ( + set "outputFile=%~2" +) + +if "%format%"=="csv" for /f "tokens=*" %%a in ("%outputFile%") do ( + if not "%%~xa"==".csv" set "outputFile=!outputFile!.csv" +) +if "%format%"=="text" for /f "tokens=*" %%a in ("%outputFile%") do ( + if not "%%~xa"==".txt" set "outputFile=!outputFile!.txt" +) + +if "%format%"=="csv" echo ; > "%outputFile%" + +for /f "tokens=1,2* delims=:" %%i in ('netsh wlan show profile') do ( + if !nextStr!==2 ( + set "name=%%j" + set "name=!name:~1!" + for /f "tokens=1,2 delims=:" %%k in ('netsh wlan show profile "!name!" key^=clear ^| find " "') do ( + set "key=%%l" + set "key=!key:~1!" + if "!format!"=="csv" echo !name!;!key!>> "!outputFile!" + if "!format!"=="text" echo "!name!": !key!>> "!outputFile!" + if "!format!"=="echo" echo "!name!": !key! + if "!format!"=="bat" echo !name!:!key! + ) + ) + if !nextStr!==1 set nextStr=2 + if "%%i"==" " set nextStr=1 +) + +endlocal +exit /b \ No newline at end of file diff --git a/windows/bat/minesweater.bat b/windows/bat/minesweater.bat new file mode 100644 index 0000000..948aad8 --- /dev/null +++ b/windows/bat/minesweater.bat @@ -0,0 +1,173 @@ +@echo off + +::подготовка +cd %~dp0 +title Mine Sweater :3 (Score: 0) +chcp 65001 > nul +setlocal EnableDelayedExpansion +mode con cols=50 lines=17 + +::открываем меню +call :menu + +::начало игры +:start + +::задаем размер поля +set size=8 + +::обнуляем счет +set score=0 +title Mine Sweater :3 (Score: 0) + +::создаем поле с минами +for /l %%i in (1,1,%size%) do ( + for /l %%j in (1,1,%size%) do ( + call :getrandtxt + set pole[%%i][%%j]=!randtxt! + ) +) + +::основной цикл +:loop +cls + +::рисуем поле +call :drawpole +echo. + +::получаем координаты +set /p "input=Y,X: " + +::обрабатываем координаты +for /f "delims=, tokens=1,2" %%m in ("%input%") do ( + call :getpoint %%m %%n + echo !point! %%m %%n + if !point! equ m ( + ::мина - выход в меню + cls + echo Boom!  + echo Score: !score! + call :menu nologo + ) else ( + ::мины нет, обновляем счет + set "pole[%%m][%%n]=□" + call :check %%m %%n + set /a "score+=1" + title Mine Sweater :3 (Score: !score!^) + ) +) + +goto loop + +::::::::::::::::::::::: +::блок описания функций +::::::::::::::::::::::: + +::выдача случайного числа +:getrandnum + set randnum=%random:~-2% +goto :eof + +::выдача буквы: n - пусто, m - мина +:getrandtxt + call :getrandnum + if %randnum% gtr 70 ( + set "randtxt=m" + ) else ( + set "randtxt=n" + ) +goto :eof + +::получение буквы по координатам +:getpoint + set point=!pole[%1][%2]! +goto :eof + +::рисуем поле +:drawpole + ::переменная с текстом поля + set "text=" + + ::печатаем верхнюю строку + set "up= " + for /l %%a in (1,1,%size%) do ( + set "up=!up! %%a" + ) + echo %up% + + for /l %%k in (1,1,%size%) do ( + if %%k lss 10 ( + set "text= %%k" + ) else ( + set "text=%%k" + ) + for /l %%l in (1,1,%size%) do ( + if !pole[%%k][%%l]! equ n ( + ::ячейка закрыта - добавляем ■ + set "text=!text! ■" + ) else if !pole[%%k][%%l]! equ m ( + ::ячейка закрыта - добавляем ■ + set "text=!text! ■" + ) else ( + ::ячейка открыта - добавляем символ ячейки + set "text=!text! !pole[%%k][%%l]!" + ) + ) + ::вывод поля на экран + echo !text! + ) +goto :eof + +::меню игры +:menu + ::если не передан параметр nologo, печатаем название игры + if "%1" neq "nologo" ( + echo MINE SWEATER + echo. + ) + echo ^[S^] Start new game + echo ^[E^] Exit + ::запрос + choice /c se /m "" > nul + if %errorlevel% equ 1 ( + ::новая игра + goto start + ) else ( + ::выход + exit + ) +goto :eof + +::проверка ячеек +:check + ::переменные для хранения координат + set y=%1 + set x=%2 + + ::переменные для различных вариантов координат + set /a "ym2=y-2" + set /a "xm2=x-2" + set /a "ym1=y-1" + set /a "xm1=x-1" + set /a "yp2=y+2" + set /a "xp2=x+2" + set /a "yp1=y+1" + set /a "xp1=x+1" + + ::проверки мин + + ::верх + if !pole[%ym1%][%x%]! equ m set "pole[%y%][%x%]=1" + if !pole[%ym2%][%x%]! equ m set "pole[%ym1%][%x%]=1" + ::низ + if !pole[%y%][%xp1%]! equ m set "pole[%y%][%x%]=1" + if !pole[%yp2%][%x%]! equ m set "pole[%yp1%][%x%]=1" + ::лево + if !pole[%y%][%xm1%]! equ m set "pole[%y%][%x%]=1" + if !pole[%y%][%xm2%]! equ m set "pole[%y%][%xm1%]=1" + ::право + if !pole[%y%][%xp1%]! equ m set "pole[%y%][%x%]=1" + if !pole[%y%][%xp2%]! equ m set "pole[%y%][%xp1%]=1" + +goto :eof \ No newline at end of file