2017-04-21 110 views
0

我有一個批處理文件,它會生成一個.vbs文件,然後打開它。他們都在同一個文件夾中。我試過使用start,但由於某種原因,它根本不起作用。我也嘗試cscript,但由於腳本應該隱藏起來,所以這也不起作用。如果我嘗試手動運行vbs文件,它可以工作。批處理文件不會打開隱藏的.vbs文件

代碼:

@echo off 
tasklist | find "wscript.exe" >nul: && goto runningalr 

:reset 
type nul > sound.vbs 
(echo Set Sound = CreateObject("WMPlayer.OCX.7"^))>>sound.vbs 

:begin 
set /p loop=Do you want the music to repeat? (y/n) ... 
if /i %loop%==y goto repeat 
if /i %loop%==n goto begin1 
goto begin 

:repeat 
(echo do until false)>>sound.vbs 
goto begin1 

:begin1 
set /p damd=The music's directory? (type "exit" if no more) ... 
if /i %damd%==exit goto start 
(echo Sound.URL = "%damd%" 
    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 
goto begin1 

:runningalr 
set /p kill=Music already playing. Do you want to stop it? (y/n) ... 
if %kill%==y taskkill /f /im wscript.exe && exit 
if %kill%==n goto gonnaexit 

:gonnaexit 
<nul set /p "=Press any key to exit ... " 
pause >nul 
exit 

:start 
if /i %loop%==y (echo loop)>>sound.vbs 
start C:\Users\User\Desktop\server\sound.vbs 

爲什麼我不start工作,是什麼在起作用?

+0

嘗試使用絕對路徑。隱藏的腳本應該像可見的那樣正常執行。 – aschipfl

+0

@aschipfl已經嘗試過,它不適合我。 – Kappa

+1

在您提供您遇到問題的代碼之前,您希望得到多少評論? – Compo

回答

0

,而不必只是「找到WScript的」嘗試使用「查找%WINDIR%/ System32下/ WScript.exe的/我」

您可能還需要運行該腳本作爲管理員,但是這是不可能的。

+0

添加路徑不是必需的,但也許是'/ I'選項... – aschipfl

+0

啊,我知道我錯過了/ I,但當時我想不起來。我會將其添加到它。非常感謝你提醒我。 – J03L

+0

@ J03L哦,不,那個頂部的部分只是爲了檢查它是否已經在運行。以管理員身份運行也似乎沒有幫助。 – Kappa

0

您給start提供了一個專用路徑,但是您將vbs腳本寫入當前工作目錄。以下行從該工作目錄開始:

start "" "%~dp0sound.vbs" 
+0

這不起作用,不幸的是.. – Kappa