2012-08-10 266 views
20

我只需要編寫一個簡單的批處理文件來運行一個vbscript。 vbscript和批處理文件都位於同一個文件夾中,並位於SysWOW64目錄中,因爲vbscript只能在該目錄中執行。目前我的批處理文件如下:從批處理文件運行vbscript

@echo off 
%WINDIR%\SysWOW64\cmd.exe 
cscript necdaily.vbs 

但是,vbscript未執行,只是命令提示符處於打開狀態。任何人都可以告訴我,當我運行這個批處理文件時,如何執行vbscript?謝謝。

回答

31

您可以使用%~dp0來獲取當前正在運行的批處理文件的路徑。

編輯以運行

之前將目錄更改爲VBS位置,如果你想在VBS同步在同一個窗口中運行,那麼

@echo off 
pushd %~dp0 
cscript necdaily.vbs 

如果你想在VBS同步運行一個新窗口,然後

@echo off 
pushd %~dp0 
start /wait "" cmd /c cscript necdaily.vbs 

如果你想讓VBS異步運行在同一個窗口中,那麼

@echo off 
pushd %~dp0 
start /b "" cscript necdaily.vbs 

如果你想在VBS異步在新窗口中運行,那麼

@echo off 
pushd %~dp0 
start "" cmd /c cscript necdaily.vbs 
+0

我嘗試了所有的命令,但它仍然無法工作 – user918197 2012-08-14 06:48:14

+1

@ user918197 - ???他們爲我工作。也許你的VBS僅在當前目錄與VBS位置匹配時纔有效。嘗試對答案進行編輯。 – dbenham 2012-08-14 11:37:03

+0

它與32位或64位的東西有什麼關係,因爲我的VBScript不能運行在64位的Windows Server 2008 R2中,那就是將包含VBScript的整個文件夾複製到SysWOW64目錄中,運行時,我鍵入命令,cscript necdaily.vbs但不在批處理文件中。 – user918197 2012-08-15 00:56:14

7

這是批處理文件的命令,它可以運行VBScript。

C:\Windows\SysWOW64\cmd.exe /c cscript C:\Windows\SysWOW64\...\necdaily.vbs 
1

好吧,我試圖打開一個批處理文件中爲.vbs,而無需點擊打開,但這個問題的答案是...

SET APPDATA =%CD%

啓動(你的文件沒有在這裏以.vbs括號,如果它是一個VBD文件)

希望幫助:)

5

批處理文件由行處理行,只要您撥打一個終止n可執行的直接。
- 要使批處理文件等待進程終止並繼續,請在其前面放置call
- 要使批處理文件不經等待而繼續,請在其前面放置start ""

我建議使用此單行腳本來實現自己的目標:

@call CSCRIPT 「%〜dp0necdaily.vbs」

(因爲這是單行線,您可以使用@而不是關閉@echo)

如果你認爲你的腳本只能從CMD.EXE的Syswow64資料版本叫,你可以嘗試:

@%WINDIR%\ SysWOW64 \ cmd.exe/c調用cscript「%〜dp0necdaily。VBS 「與

如果您需要的窗口保持,您可以替換/ C/K

+0

對於第一個命令,可能並不需要['call'](https://ss64.com/nt/call.html)。沒有它的腳本也會同步執行。通常'call'用於調用第二個*批處理*腳本而不混合執行上下文。所以,一個小小的'@ cscript'%〜dp0necdaily.vbs''完成了這項工作。 – 2017-04-17 22:38:51

1

就試試這個代碼:

啓動 」「」 C:\用戶\ DiPesh \桌面\ VBScript中\ welcome.vbs」

,並保存爲.bat和工作對我來說