如何使用CMD或VBS轻轻关闭Chrome?

如何使用CMD或VBS轻轻关闭Chrome?,cmd,vbscript,Cmd,Vbscript,为了自动清理缓存,我在关闭Chrome时遇到了一个小问题 我有一个网站没有正确刷新,但如果我清理缓存,它会正确刷新 目前,我有一个.bat文件,其代码如下: taskkill /F /IM chrome.exe /T > nul del /q "C:\Users\Francisco\AppData\Local\Google\Chrome\User Data\Default\Cache\*" FOR /D %%p IN ("C:\Users\Francisco\

为了自动清理缓存,我在关闭Chrome时遇到了一个小问题

我有一个网站没有正确刷新,但如果我清理缓存,它会正确刷新

目前,我有一个.bat文件,其代码如下:

taskkill /F /IM chrome.exe /T > nul
del /q "C:\Users\Francisco\AppData\Local\Google\Chrome\User Data\Default\Cache\*"
FOR /D %%p IN ("C:\Users\Francisco\AppData\Local\Google\Chrome\User Data\Default\Cache\*.*") DO rmdir "%%p" /s /q
timeout 8
start chrome --restore-last-session --start-fullscreen
现在,我知道
taskkill/F
会强制关闭进程,但一旦Chrome打开,它就会显示一条消息,表明Chrome没有正确关闭,并询问我是否要恢复上一个会话

如果删除/f选项,Chrome不会关闭:

错误:PID为8580的进程(PID二级进程8896) 无法完成。
原因:此过程只能强制终止(使用/F选项)

所以。。。我需要两个选择中的一个

  • 有没有一种方法可以像使用CMD或VBS按下Alt+F4一样轻轻关闭Chrome?2。有没有办法隐藏Chrome restore上次会话消息

  • 我更喜欢第一个选项,因为它更干净。

    您可以使用powershell关闭所有以chrome作为进程名的窗口。它不会终止任务,但会轻轻关闭所有chrome浏览器窗口,就像你点击右上角的十字一样。以下是要成批放入的命令行:

    powershell -command "Get-Process chrome | ForEach-Object { $_.CloseMainWindow() | Out-Null}"
    

    请参阅@tuxy42的答案: 您可以使用vbscript编写以下命令以打开chrome浏览器:打开chrome\u浏览器。vbs

    如果您想安全地关闭它:安全地关闭chrome\u browser.vbs


    更新:如果我将--restore last session for--incognito替换为--restore last session,则会显示还原消息,但我仍想知道如何在不强制关闭的情况下关闭Chrome。TASKKILL选项
    /F
    会导致操作系统终止Chrome进程。不要使用
    /F
    ,TASKKILL会向Chrome进程发送终止消息,然后Chrome会自行终止。批处理文件应等待一两秒钟,然后才能继续执行批处理文件并删除缓存目录。如果Chrome进程在Chrome成功终止后继续批处理文件执行之前自动终止,则最好在每次迭代和最多5次迭代之间以1秒的延迟检查循环。如果没有/F,则不能工作:(你有没有看过Windows任务管理器的进程选项卡或使用命令任务列表当你想终止Chrome时,有多少
    Chrome
    进程在运行?Chrome为每个选项卡创建至少一个进程。我自己不使用Chrome,但在另一台计算机上看到一个Chrome窗口,其中4个选项卡显示4个简单页面在11个运行的Chrome进程中,总共使用了超过1 GB的RAM。由于用户关闭了一个选项卡,3个Chrome进程终止。因此,根据当前在Chrome中加载的内容,您可能需要不同的策略。
    “刷新不正确,但如果我清理缓存就会刷新”
    是否尝试了“Ctrl-F5”?它用一个干净的缓存刷新站点。回答很好。
    Set ws = CreateObject("Wscript.Shell")
    siteA = "https://stackoverflow.com/questions/62516355/google-chrome-always-says-google-chrome-was-not-shut-down-properly"
    ws.Run "chrome -url " & siteA
    
    Set ws = CreateObject("Wscript.Shell")
    psCommand = "Cmd /C powershell -command ""Get-Process chrome | ForEach-Object { $_.CloseMainWindow() | Out-Null}"""
    ws.run psCommand,0,True