sysinternals
While the Microsoft Sysinternals tools are incredibly powerful and useful, the one feature they lack is the ability to check for new versions. Currently, you have to periodically check the Sysinternals site and compare versions between your system and the most recent official release in order to stay up to date.
尽管Microsoft Sysinternals工具功能强大且实用,但是它们缺少的一项功能是能够检查新版本。 当前,您必须定期检查Sysinternals站点并比较系统和最新正式发行版之间的版本,以保持最新状态。
As a better solution, we have created a batch script which will automatically update the Sysinternals tools you have on your system. All you have to do is put the batch script file into the folder where your Sysinternals tools are located and the script does the rest, no configuration is needed.
作为更好的解决方案,我们创建了一个批处理脚本,该脚本将自动更新您系统上的Sysinternals工具。 您所要做的只是将批处理脚本文件放入Sysinternals工具所在的文件夹中,其余部分由脚本执行,无需进行配置。
Here is how it works:
下面是它的工作原理:
- The current list of tools from Sysinternals is downloaded and compared to the files on your system. Sysinternals的当前工具列表已下载,并与系统上的文件进行比较。
- If a match is found, the current version from Sysinternals is copied to your system. 如果找到匹配项,则会将Sysinternals中的当前版本复制到您的系统中。
- If a tool is currently running, it is closed and then restarted once the script completes. 如果当前正在运行工具,则在脚本完成后将其关闭,然后重新启动。
剧本 (The Script)
@ECHO OFF
TITLE Sysinternals Updater
ECHO Sysintenals Updater
ECHO Written by: Jason Faulkner
ECHO SysadminGeek.com
ECHO.
ECHO.
SETLOCAL ENABLEDELAYEDEXPANSION
SET SysInternalsTools="%Temp%SysInternalsTools.tmp.txt"
SET CurrentTasks="%Temp%CurrentTasks.tmp.txt"
SET StartWhenFinished="%Temp%StartWhenFinished.tmp.txt"
ECHO Detected directory: %~dp0
%~d0
CD %~p0
ECHO.
ECHO.
ECHO Downloading current tool list...
SET LiveShare=\live.sysinternals.comtools
START /MIN %LiveShare%
DIR %LiveShare% /B > %SysInternalsTools%
TASKLIST > %CurrentTasks%
ECHO ;Terminated tools > %StartWhenFinished%
ECHO.
ECHO Updating installed SysInternals tools
FOR /F %%A IN ('DIR /B') DO (
FOR /F "usebackq" %%B IN (%SysInternalsTools%) DO (
IF /I [%%A]==[%%B] (
ECHO Updating %%A
FOR /F "usebackq" %%C IN (%CurrentTasks%) DO (
IF /I [%%A]==[%%C] (
ECHO %%C is currently running, killing process - queue restart
ECHO %%C >> %StartWhenFinished%
TASKKILL /IM %%A /T /F
)
)
XCOPY %LiveShare%%%B %%A /Y
ECHO.
)
)
)
ECHO.
ECHO Resuming killed tasks
FOR /F "usebackq skip=1" %%A IN (%StartWhenFinished%) DO (
ECHO Starting %%A
START "Sysinternals Tool" "%%A"
)
IF EXIST %SysInternalsTools% DEL %SysInternalsTools%
IF EXIST %CurrentTasks% DEL %CurrentTasks%
IF EXIST %StartWhenFinished% DEL %StartWhenFinished%
ENDLOCAL
ECHO.
PAUSE
链接 (Links)
Download Sysinternals Updater Script from Sysadmin Geek
从Sysadmin Geek下载Sysinternals Updater脚本
翻译自: https://www.howtogeek.com/50356/batch-script-to-auto-update-sysinternals-tools/
sysinternals