cmd靜默運(yùn)行_關(guān)于腳本:以靜默模式運(yùn)行CMD或BAT weixin_40009026 于 2020-12-22 20:59:40 發(fā)布 4232 收藏 1 文章標(biāo)簽: cmd靜默運(yùn)行 版權(quán) 如何在靜默模式下運(yùn)行CMD或.bat文件? 我希望防止向用戶顯示CMD界面,。 包括短語 @echo off 在您的蝙蝠腳本的頂部,。 感謝您的編輯moocha。 對其進(jìn)行了一些改進(jìn)(格式化,,在前面添加了@,,以便echo語句本身不會導(dǎo)致輸出,。)但是,這不會阻止調(diào)用的命令的輸出,。調(diào)用時將輸出重定向到> NUL 2> NUL即可。 嘿,,歡迎光臨,。交叉評論:) 我知道我知道,,謝謝 我在StackOverflow問題中提出了一種在后臺運(yùn)行批處理文件的方法(不顯示DOS窗口) 那應(yīng)該回答你的問題。 這里是: 在第一個腳本中,,使用以下行調(diào)用第二個腳本: wscript.exe invis.vbs run.bat %* 實(shí)際上,您正在使用以下命令調(diào)用vbs腳本: 腳本的[路徑] 名稱 腳本所需的所有其他自變量(%*) 然后,,invis.vbs將使用Windows Script Host Run()方法調(diào)用腳本,,該方法需要: intWindowStyle:0表示"不可見窗口" bWaitOnReturn:false表示您的第一個腳本不需要等待第二個腳本完成 有關(guān)完整的invis.vbs腳本,,請參見問題: Set WshShell = WScript.CreateObject("WScript.Shell") WshShell.Run"""" & WScript.Arguments(0) &"""" & sargs, 0, False ^ means"invisible window" ---| 在Tammen反饋后進(jìn)行更新: 如果您正在DOS會話中,并且想"在后臺"啟動另一個腳本,,則簡單的/b(如上述相同問題中所述)就足夠了: You can use start /b second.bat to launch a second batch file asynchronously from your first that shares your first one's window. 可以僅使用DOS命令來完成? @calvin:此答案的第二部分僅顯示DOS命令,。根據(jù)您的上下文,您可以使用DOS命令以靜默方式運(yùn)行腳本(也由stackoverflow.com/questions/298562中的答案進(jìn)行了詳細(xì)介紹) @Shf謝謝您的編輯,。 @VonC謝謝您的出色回答,并為我避免了其他調(diào)查工作:D 從http://www.使用高級BAT到EXE轉(zhuǎn)換器 這將使您可以將批處理文件中的所有其他二進(jìn)制文件嵌入到一個獨(dú)立的完全無聲的EXE及其免費(fèi)軟件中 我認(rèn)為這是在不打開DOS窗口的情況下運(yùn)行批處理文件的最簡單,,最短的解決方案,,當(dāng)您要安排一組定期運(yùn)行的命令時,,這可能會分心,因此DOS窗口不斷彈出,,這是您的解決方案。 使用VBS腳本調(diào)用批處理文件... Set WshShell = CreateObject("WScript.Shell" ) WshShell.Run chr(34) &"C:\Batch Files\ mycommands.bat" & Chr(34), 0 Set WshShell = Nothing 將以上各行復(fù)制到編輯器中,,并以.VBS擴(kuò)展名保存文件,。相應(yīng)地編輯.BAT文件名和路徑。 完美..像魅力一樣工作 簡單,。完美運(yùn)作,。由于我的批處理文件只是從一個命令開始,因此我完全可以將其刪除,,然后將命令放在VBS中,。謝謝,。 一切正常,謝謝兄弟 使用Bat To Exe Converter來執(zhí)行此操作 http://download./Bat-To-Exe-Converter/3000-2069_4-10555897.html(選擇直接下載鏈接) 1-打開Bat to Exe Converter,,選擇您的Bat文件。 2-在"選項(xiàng)"菜單中選擇"不可見的應(yīng)用程序",,然后按編譯按鈕,。 做完了,! 嘗試使用SilentCMD。這是一個小的免費(fèi)軟件程序,,它執(zhí)行批處理文件而不顯示命令提示符窗口。 如果我想在靜默模式下運(yùn)行命令promt,,那么有一個簡單的vbs命令: Set ws=CreateObject("WScript.Shell") ws.Run"TASKKILL.exe /F /IM iexplore.exe" 如果我想以靜默方式在cmd中打開一個網(wǎng)址,那么這里是一個代碼: Set WshShell = WScript.CreateObject("WScript.Shell") Return = WshShell.Run("iexplore.exe http:///log/index.php", 0) 'wait 10 seconds WScript.sleep 10000 Set ws=CreateObject("WScript.Shell") ws.Run"TASKKILL.exe /F /IM iexplore.exe" 我很有信心,,我最喜歡這種方法。將下面的代碼復(fù)制并粘貼到.vbs文件中,。從那里您將調(diào)用批處理文件...,,因此請確保您編輯最后一行以指定批處理文件的路徑和名稱(其中應(yīng)包含您要啟動的文件或執(zhí)行您需要執(zhí)行的操作的文件) Const HIDDEN_WINDOW = 12 strComputer ="." Set objWMIService = GetObject("winmgmts:" _ &"{impersonationLevel=impersonate}!\" & strComputer &" oot\cimv2") Set objStartup = objWMIService.Get("Win32_ProcessStartup") Set objConfig = objStartup.SpawnInstance_ objConfig.ShowWindow = HIDDEN_WINDOW Set objProcess = GetObject("winmgmts:root\cimv2:Win32_Process") errReturn = objProcess.Create("C:\PathOfFile ame.bat", null, objConfig, intProcessID) 絕對對我有用。歡迎評論:) 真的很好,! 另一種方法,,沒有第三方程序或轉(zhuǎn)換器("批處理到exe"程序,,實(shí)際上只是將批處理文件放在tmp文件夾中,,然后以靜默方式運(yùn)行,因此任何人都可以從那里獲取它并獲取代碼)沒有vbs文件(因?yàn)闆]人知道vbs)批處理文件開頭僅一行,。 @echo off > NUL 我創(chuàng)建了RunApp來完成這項(xiàng)工作,,并在我的生產(chǎn)環(huán)境中使用了它,,希望對您有所幫助。 如下配置: 文件:config.arg :style:hidden MyBatchFile.bat arg1 arg2 然后啟動runapp.exe,。 ———————————————— 版權(quán)聲明:本文為CSDN博主「weixin_40009026」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,,轉(zhuǎn)載請附上原文出處鏈接及本聲明,。 原文鏈接:https://blog.csdn.net/weixin_40009026/article/details/111864577 |
|