Batch file 在不显示命令提示符的情况下启动Java/批处理混合

Batch file 在不显示命令提示符的情况下启动Java/批处理混合,batch-file,vbscript,jscript,Batch File,Vbscript,Jscript,过了一会儿,我问了一个问题(得到了非常好的回答)来创建下面的程序,我想静静地启动它,这样命令提示符就不会显示在后台。 下面的程序测试“Agent.exe”,如果找到它,会向用户显示一个消息框,告诉他们程序将在2分钟内关闭,除非他们按ok 现在 我偶然发现了这个VBS脚本 Set WshShell = CreateObject("WScript.Shell") WshShell.Run chr(34) & "Program goes here" & Chr(34), 0 Set

过了一会儿,我问了一个问题(得到了非常好的回答)来创建下面的程序,我想静静地启动它,这样命令提示符就不会显示在后台。 下面的程序测试“Agent.exe”,如果找到它,会向用户显示一个消息框,告诉他们程序将在2分钟内关闭,除非他们按ok

现在

我偶然发现了这个VBS脚本

Set WshShell = CreateObject("WScript.Shell") 
WshShell.Run chr(34) & "Program goes here" & Chr(34), 0
Set WshShell = Nothing
但是我没有一点线索把它和我的剧本结合起来

@if (@CodeSection == @Batch) @then
setlocal
for /f %%I in ('forfiles /p "%~dp0." /m "%~nx0" /c "cmd /c echo 0x07"') do set "beep=%%I"
set /P "=%beep%"<NUL
set /P "=%beep%"<NUL
set /P "=%beep%"<NUL
setlocal
set "task=agent.exe"
set "timeout=120"
rem // Is %task% running?
tasklist /fi "imagename eq %task%" | find /i "%task%" >NUL && (

    rem // Re-launch script with JScript interpreter
    wscript /e:JScript /nologo "%~f0" %timeout% || (
        rem // If timeout or user hits No, kill %task%
        taskkill /im "%task%" /f
    )
)

rem // End main runtime

goto :EOF

rem // Begin JScript portion
@end
var osh = WSH.CreateObject('WScript.Shell'),
    nag = 'Greetings!  Your administrator has requested you to log out of Program '
        + 'after work.  It appears you are still using it.'
        + ' If you are still here, Press Yes to continue working.\n\n'
        + 'Otherwise, press no to close Program.'
        + 'Program will close automatically in less than ' + WSH.Arguments(0) + ' seconds.';
    popup = osh.Popup(nag, WSH.Arguments(0), 'Are you still here?', 0x4 + 0x20 + 0x1000);
WSH.Quit(popup - 6);
@如果(@code节==@Batch)@那么
setlocal
对于/f%%I in('forfiles/p“%~dp0.”/m“%~nx0”/c“cmd/c echo 0x07“),请设置“beep=%I”

设置/P“=%beep%”

以回答您的问题,该VBScript片段将起作用。只需使用

.vbs
扩展名保存它,并用批处理脚本的路径+文件名替换“Program goes here”。当您双击vbs文件或使用
wscript/nologo“path\to\vbsfile”
执行它时,它将运行隐藏的批处理脚本(无控制台窗口),但仍会出现弹出窗口


如果希望将所有代码保存在一个文件中,可以调用
powershell-windowstylehidden
来隐藏窗口。您仍将看到黑色窗口一秒钟,但它将在弹出窗口出现之前消失

@如果(@code节==@Batch)@那么
setlocal
rem//隐藏当前窗口
powershell-WindowsStyle隐藏-命令“”
对于/f%%I in('forfiles/p“%~dp0.”/m“%~nx0”/c“cmd/c echo 0x07“),请设置“beep=%I”

set/P“=%beep%”嘟嘟声更烦人,引起了注意,特工们离开办公桌时戴着耳机,所以我们需要提醒他们回到他们的机器上。啊,很好。我把哔哔声放回去了嗯,多亏了你的脚本很容易编辑,我把它们放回了我自己的邮箱(好的。)我试图意识到可读性,但并不总是成功。我很高兴你们能按口味加盐。对不起,按口味加盐?在这里你们可以找到一种不同的方法来开始这个过程-