<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; CMD/BAT: звуки (3 разных + бонус: азбука Морзе)]]></title>
		<link>http://forum.script-coding.com/viewtopic.php?id=18491</link>
		<atom:link href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=18491&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «CMD/BAT: звуки (3 разных + бонус: азбука Морзе)».]]></description>
		<lastBuildDate>Sat, 06 Sep 2025 11:52:08 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: CMD/BAT: звуки (3 разных + бонус: азбука Морзе)]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=162685#p162685</link>
			<description><![CDATA[<p>Имитация сообщения азбукой Морзе:</p><div class="codebox"><pre><code>@ echo off
setlocal enabledelayedexpansion

cls
title Morse

call :morse_init

:sos
call :morse &quot;SOS ALEX&quot;
call :morse &quot;POSITION 34N 75S&quot;
goto sos

:: Азбука Морзе
:morse
setlocal
set &quot;str=%~1&quot;
if not defined str endlocal &amp; exit /b
set &quot;str=%str: =_%&quot;
set &quot;i=0&quot;
:morse_1
set &quot;c=!str:~%i%,1!&quot;
if not defined c (
	call :pause 2
	echo.
	endlocal &amp; exit /b
)
0&lt;nul set /p &quot;=%c%&quot;
if &quot;%c%&quot;==&quot;_&quot; (
	call :pause 1
) else (
	call :morse_echo &quot;%c%&quot;
	call :pause
	call :pause
)
set /a &quot;i+=1&quot;
goto morse_1

:: Вывод заданного символа
:morse_echo
setlocal
set &quot;m=!M_%~1!&quot;
if not defined m endlocal &amp; exit /b
set &quot;i=0&quot;
:morse_echo_1
set &quot;c=!m:~%i%,1!&quot;
if not defined c endlocal &amp; exit /b
if &quot;%c%&quot;==&quot;.&quot; call :morse_dot
if &quot;%c%&quot;==&quot;-&quot; call :morse_dash
set /a &quot;i+=1&quot;
goto morse_echo_1

:: Таблица азбуки Морзе
:morse_init
set &quot;M_A=.-&quot;
set &quot;M_B=-...&quot;
set &quot;M_C=-.-.&quot;
set &quot;M_D=-..&quot;
set &quot;M_E=.&quot;
set &quot;M_F=..-.&quot;
set &quot;M_G=--.&quot;
set &quot;M_H=....&quot;
set &quot;M_I=..&quot;
set &quot;M_J=.---&quot;
set &quot;M_K=-.-&quot;
set &quot;M_L=.-..&quot;
set &quot;M_M=--&quot;
set &quot;M_N=-.&quot;
set &quot;M_O=---&quot;
set &quot;M_P=.--.&quot;
set &quot;M_Q=--.-&quot;
set &quot;M_R=.-.&quot;
set &quot;M_S=...&quot;
set &quot;M_T=-&quot;
set &quot;M_U=..-&quot;
set &quot;M_V=...-&quot;
set &quot;M_W=.--&quot;
set &quot;M_X=-..-&quot;
set &quot;M_Y=-.--&quot;
set &quot;M_Z=--..&quot;
set &quot;M_1=.----&quot;
set &quot;M_2=..---&quot;
set &quot;M_3=...--&quot;
set &quot;M_4=....-&quot;
set &quot;M_5=.....&quot;
set &quot;M_6=-....&quot;
set &quot;M_7=--...&quot;
set &quot;M_8=---..&quot;
set &quot;M_9=----.&quot;
set &quot;M_0=-----&quot;
exit /b

:: Точка (Морзе)
:morse_dot
color f0
powershell -c &quot;[console]::beep(700,100)&quot;
color 07
exit /b

:: Тире (Морзе)
:morse_dash
color f0
powershell -c &quot;[console]::beep(700,300)&quot;
color 07
exit /b

:: Задержка в сек (0 - короткая задержка)
:pause
if &quot;%~1&quot;==&quot;&quot; (
	timeout /t 0 &gt;nul
) else (
	timeout /t %~1 &gt;nul
)
exit /b
</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Arigato)]]></author>
			<pubDate>Sat, 06 Sep 2025 11:52:08 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=162685#p162685</guid>
		</item>
		<item>
			<title><![CDATA[CMD/BAT: звуки (3 разных + бонус: азбука Морзе)]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=162683#p162683</link>
			<description><![CDATA[<p>Два примера, как вывести звук из батника:</p><div class="codebox"><pre><code>@ echo off
setlocal enabledelayedexpansion

pause
echo Звуковой сигнал №1
call :beep1

pause
echo Звуковой сигнал №2
call :beep2

exit /b

:: Звуковой сигнал через символ с кодом 7 (Alt + 07)
:beep1
setlocal
0&lt;nul set /p =[BEL]
endlocal &amp; exit /b

:: Звуковой сигнал через choice
:beep2
echo 0y | choice /c y /n&gt;nul
exit /b</code></pre></div><p><strong>[BEL]</strong> - это непечатный символ с кодом 7. В форум его вставить нельзя, так что работающий пример качайте из вложения.</p><p>Подпрограмма <strong>beep1</strong> выводит звук через символ с кодом 7.<br />Подпрограмма <strong>beep2</strong> выводит звук через команду choice.</p><p>Не факт что везде будет работать, не проверял, но у меня оба метода работают и звуки разные.</p><br /><p><strong>Произвольный звуковой сигнал</strong></p><p>Еще один вариант воспроизвести звук, причем произвольный:<br /></p><div class="codebox"><pre><code>powershell -c &quot;[console]::beep(800,200)&quot;</code></pre></div><p>800 - частота в Гц (от 37 до 32767).<br />200 - продолжительность в мс (от 1).</p><br /><p><strong>Сигнал SOS</strong></p><p>А вот и пример реализации сигнала SOS через звуки и мигание экраном:</p><div class="codebox"><pre><code>@ echo off
setlocal enabledelayedexpansion

cls
title Сигнал SOS

:sos
call :M_S
call :M_O
call :M_S
call :pause 2
echo.
goto sos

exit /b

:: O: ---
:M_O
call :dash
call :dash
call :dash
exit /b

:: S: ...
:M_S
call :dot
call :dot
call :dot
exit /b

:: Точка (Морзе)
:dot
setlocal
0&lt;nul set /p =.
color f0
call :beep2
color 07
endlocal &amp; exit /b

:: Тире (Морзе)
:dash
setlocal
0&lt;nul set /p =-
color f0
call :beep2
call :pause
color 07
endlocal &amp; exit /b

:: Звуковой сигнал через choice
:beep2
echo 01 | choice /c 1 /n&gt;nul
exit /b

:: Задержка в сек (0 - короткая задержка)
:pause
setlocal
set t=%1
if &quot;%t%&quot;==&quot;&quot; set t=0
timeout /t %t% &gt;nul
endlocal &amp; exit /b
</code></pre></div><p>Так как звук подается вызовом подпрограммы beep2, которая работает через choice, то и непечатных символов тут нет. Можно копировать код прямо с форума.</p><p>Обсуждение тут - <a href="http://forum.script-coding.com/viewtopic.php?id=18487">CMD/BAT: звуки (2 разных + бонус: сигнал SOS)</a></p>]]></description>
			<author><![CDATA[null@example.com (Arigato)]]></author>
			<pubDate>Sat, 06 Sep 2025 09:21:56 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=162683#p162683</guid>
		</item>
	</channel>
</rss>
