Не могу использовать bat файл при запуске команды cscript - PullRequest
0 голосов
/ 13 октября 2019

Я делаю текстовую игру на основе cmd, которая запускает музыку в фоновом режиме, но каждый раз, когда я запускаю команду с помощью cscript, она не переходит на экран меню, но если я запускаю ее с помощью команды запуска, она не будетостановить даже после того, как я вышел из файла. Вот команда:

@echo off
set "file=musicfilename.mp3"
( 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
cscript //nologo sound.vbs

"musicfilename.mp3" - это имя файла mp3

1 Ответ

0 голосов
/ 13 октября 2019

На основе решения @ Стефан Вы можете начать cscript свернуто start /min cscript //nologo sound.vbs

Я сделал для вас забавный сценарий, подобный этому:

@echo off
Mode 64,35 & color 0A
Title Play Music 
Rem :: You can change easily your custom URL on this variable URL_Music
Set "URL_Music=http://94.23.221.158:9197/stream"
Rem :: Here we start cscript minimized to play music with URL as argument
Call :Play "%URL_Music%"
:::
:::      __   __  _______  ___      ___      _______
:::     |  | |  ||       ||   |    |   |    |       |
:::     |  |_|  ||    ___||   |    |   |    |   _   |
:::     |       ||   |___ |   |    |   |    |  | |  |
:::     |       ||    ___||   |___ |   |___ |  |_|  |
:::     |   _   ||   |___ |       ||       ||       |
:::     |__| |__||_______||_______||_______||_______|
:::
:::              _ _,---._
:::           ,-','       `-.___
:::          /-;'               `._
:::         /\/          ._   _,'o \
:::        ( /\       _,--'\,','"`. )
:::         |\      ,'o     \'    //\
:::         |      \        /   ,--'""`-.
:::         :       \_    _/ ,-'         `-._
:::          \        `--'  /                )
:::           `.  \`._    ,'     ________,','
:::             .--`     ,'  ,--` __\___,;'
:::              \`.,-- ,' ,`_)--'  /`.,'
:::               \( ;  | | )      (`-/
:::                 `--'| |)       |-/
:::                   | | |        | |
:::                   | | |,.,-.   | |_
:::                   | `./ /   )---`  )
:::                  _|  /    ,',   ,-'
:::                 ,'|_(    /-<._,' |--,
:::                 |    `--'---.     \/ \
:::                 |          / \    /\  \
:::               ,-^---._     |  \  /  \  \
:::            ,-'        \----'   \/    \--`.
:::           /            \              \   \
:::
::**************************************************************
for /f "delims=: tokens=*" %%A in ('findstr /b ::: "%~f0"') do @echo(%%A
pause>nul & exit
::**************************************************************
:Play
(
echo Play "%~1"
echo Sub Play(URL^)
echo    Dim Sound
echo    Set Sound = CreateObject("WMPlayer.OCX"^)
echo    Sound.URL = URL
echo    Sound.settings.volume = 100
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
echo End Sub
)>"%Temp%\%~n0.vbs"
Start "Play Music" /Min cscript.exe //nologo "%Temp%\%~n0.vbs"
exit /b
::**************************************************************

Вот еще одно решение, которое я сделал на чистом vbscript:

Воспроизведение музыки в фоновом режиме во время выполнения другой задачи

...