Загрузить файлы в «windows/bat»

This commit is contained in:
2026-05-13 23:39:42 +00:00
parent e308e9d489
commit 1f5f334b69
2 changed files with 238 additions and 0 deletions
+65
View File
@@ -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 ^<csv^|text^|echo^|bat^>] [/O ^<èìÿ ôàéëà^>]
echo Ïîëó÷àåò ñîõðàíåííûå â ñèñòåìå ïàðîëè îò Wi-Fi-ñåòåé.
echo.
echo /F ^<csv^|text^|echo^|bat^> Ôîðìàò äàííûõ:
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
+173
View File
@@ -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