我有 master.bat 文件,其中包含...
call file1.bat
call file2.bat
call file3.bat
call file4.bat
我想在我的Windows服务器2008上安排它以无声/隐形模式运行。我正在寻找一些方法来运行这个 master.bat 而没有任何对用户可见的东西(没有窗口) ,CMD界面,没有任务栏名称等。) 我不想安装任何批处理软件。
我尝试将运行任务的用户更改为“SYSTEM”并完成了工作,但我实际上无法做到这一点。 我发现Windows脚本宿主的运行方法允许您以隐形模式运行脚本.....
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run chr(34) & "C:\Batch Files\master.bat" & Chr(34), 0
Set WshShell = Nothing
但是没有更多的文件请:)对此有任何其他建议。
EDIT1
考虑到可用的有限选项..可以使用Windows脚本宿主的运行方法,但我如何在任务调度程序中安排master.vbs ..?
答案 0 :(得分:1)
CMDOW
是一个允许批量隐藏运行的工具。
它被各种AV程序标记为黑客工具。
答案 1 :(得分:1)
对于它的扩展视图,请在stackoverflow中检查混合批处理/ vbscript / javascript文件。
将此保存为master.cmd并根据需要进行调整。
@if (@This==@IsBatch) @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);