如何从MATLAB调用具备管理员权限的.bat文件
从MATLAB调用需管理员权限的批处理文件解决方案
问题背景
- Windows账号属于管理员组,但执行修改系统时间的
date命令时提示权限不足,必须以管理员身份运行终端 - 已基于现有方案实现无权限批处理的调用,核心代码如下:
startInfo = System.Diagnostics.ProcessStartInfo('cmd.exe', sprintf('/c "%s"', batFile)); - 需求:通过修改
cmd.exe参数或配置System.Diagnostics.ProcessStartInfo属性,让批处理获得管理员权限,需要简洁实现语法
解决方案
只需给ProcessStartInfo对象添加Verb属性并设置为'runas',这是Windows系统中请求管理员权限的标准配置,具体修改后的代码如下:
% 替换为你的批处理文件路径 batFile = 'D:\your_script.bat'; % 初始化ProcessStartInfo对象 startInfo = System.Diagnostics.ProcessStartInfo('cmd.exe', sprintf('/c "%s"', batFile)); % 关键配置:请求以管理员身份启动进程 startInfo.Verb = 'runas'; % 启动进程 process = System.Diagnostics.Process; process.StartInfo = startInfo; process.Start();
说明
- 设置
Verb = 'runas'后,系统会弹出UAC权限确认窗口(若UAC未禁用),确认后cmd.exe将以管理员身份运行,批处理中的date命令即可正常执行 - 注意批处理内的
date命令需符合Windows系统的日期格式要求,例如date 2024-05-20(格式需匹配当前系统区域设置)
内容的提问来源于stack exchange,提问作者gatorback
相关产品推荐
相关产品推荐

