2013-10-26 191 views
0

我有一個master.bat文件,其中有...運行主bat文件

call file1.bat 
call file2.bat 
call file3.bat 
call file4.bat 

我想安排它在我的Windows Server 2008上以靜默/無形mode.I運行'尋找一些方式來運行這個master.bat沒有任何可見的用戶(無窗口,CMD接口,沒有任務欄名稱等)。 我不想安裝任何批處理exe軟件。

我試圖通過更改用戶運行任務到「系統」,它已完成工作,但我不能在實際中做到這一點。 我發現Windows腳本宿主的run方法可以讓你在不可見的模式運行一個腳本.....

Set WshShell = CreateObject("WScript.Shell") 
WshShell.Run chr(34) & "C:\Batch Files\master.bat" & Chr(34), 0 
Set WshShell = Nothing 

,但沒有更多的文件,請:)任何其他建議這一點。

EDIT1

考慮available..it將確定使用Windows腳本宿主的運行方法的選擇有限,但我怎麼可以安排在任務調度master.vbs ..?

+0

使用腳本shell是創建CMD過程而不彈出窗口的唯一方法 – Antoniossss

+0

Tha是真的。 。 。有點 – nephi12

+0

你可以從服務器上運行一些東西,並讓它與遠程計算機聯繫,但如果你使用.BAT,實際上從最終用戶的計算機運行它將顯示至少最小化。使用腳本作爲@Antoniossss說是唯一的方法。 – Grant

回答

1

對於它的擴展視圖,在stackoverflow中檢查混合批處理/ vbscript/javascript文件。

將其另存爲master.cmd並根據需要進行修改。

@if (@[email protected]) @then 
@echo off 
rem **** batch zone ********************************************************* 

    rem Check if started from javascript part of script. 
    rem We are checking an environment variable set from javascript part. 
    if "%_run_hidden_%"=="true" (
     goto startBatchWork 
    ) 

    rem if not started from javascript, call javascript part to restart batch. 
    wscript //E:JScript "%~dpnx0" 
    exit /b 

:startBatchWork 

    rem Here starts the real work of the batch file 

    msg %username% "Batch file running hidden" 





    rem End of batch area. Ensure batch ends execution before reaching 
    rem javascript zone 
    exit /b 

@end 
// **** Javascript zone ***************************************************** 
// Instantiate the needed component to interact with Shell 
var shell = WScript.CreateObject('WScript.Shell'); 

    // Set the environment variable that the batch part will check to know 
    // it's running hidden 
    shell.Environment('Process').Item('_run_hidden_')='true'; 

    // start the batch part of the script calling %comspec% with the current 
    // script as parameter, hidden (0) and not waiting for it to end (false) 
    shell.Run('"' + shell.ExpandEnvironmentStrings('%comspec%') + '" /c "' + WScript.ScriptFullName + '"', 0, false); 

    // All done. Exit 
    WScript.Quit(0); 
+0

@MC ...當我將代碼放入批處理區後,雙擊master.cmd .. CMD窗口彈出一小部分秒。上述混合批處理的優點是什麼? – Sunny

+1

優點只有一個文件。如果以批處理方式啓動它,則無法顯示第二個cmd窗口的這一部分。但是,如果您直接以'wscript // E:JScript「c:\ where \ miBatch.cmd」'開始javascript部分,那麼將不會有任何可見的窗口。 –

+0

excellent..understood ..謝謝..! – Sunny

1

CMDOW是一個允許批處理運行隱藏的工具。

它被各種AV程序標記爲黑客工具。

+0

@ Foxi ..我不能去任何新的.exe安裝..我說我使用Windows腳本宿主的運行方法來運行master.bat hidden..but計劃該master.vbs文件,我不會需要另一個.bat文件。? – Sunny