Атрибут + r (команда attrib + r) делает файлы, введенные только для чтения (затем невозможно удалить / обновить / перезаписать), поэтому это первый файл с первым выбранным wav за все время, после которого он был выполнен,не изменить, потому что не «редактируемый», установив команду attrib + r.
@echo on & setlocal EnableDelayedExpansion
:: This is for write a new .vbs with new sound selected on loop:
( <nul dir /a .\sound.vbs && attrib -h -s .\sound.vbs & del /q /f .\sound.vbs ) 2>nul >nul
:_loop
:: Option [1] autentic random variable limited by 0-4 range by using: Set /a _rand=%random% * 5 / 32768
:: Option [2] take last unit from millisecons number in time by using: Set _rand=%time:~-1%
Set /a _rand=!time:~-1!
if ["!_rand!"] gtr ["4"] (
goto :_loop
) else (
:: I´m not sure the of "\" in file path, by I've change to ".\" for test the wav's files in my folder:
if ["!_rand!"]==["0"] set _file=".\Windows Exclamation.wav"
if ["!_rand!"]==["1"] set _file=".\tada.wav"
if ["!_rand!"]==["2"] set _file=".\Windows Critical Stop.wav"
if ["!_rand!"]==["3"] set _file=".\Windows Error.wav"
if ["!_rand!"]==["4"] set _file=".\Windows Background.wav"
)
(
(
echo/Set Sound = CreateObject^("WMPlayer.OCX.7"^)
echo/Sound.URL = !_file!
echo/Sound.Controls.play
echo/do while Sound.currentmedia.duration = 0
echo/wscript.sleep 100
echo/loop
echo/wscript.sleep (int(Sound.currentmedia.duration^)+1^)*1000)
)>.\sound.vbs
) && (
start "" /min wscript /nologo .\sound.vbs
:: add attribute after wscript use the file, or file .vbs can be not will not founded by wscript:
attrib +h +s .\sound.vbs
ping localhost -n 1 >NUL
) || (
echo/ E R R O R : File .vbs not genereted^^!
)
goto :top