微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在msgbox中执行cmd命令

如何解决在msgbox中执行cmd命令

所以,我的目标是要获得一个msgBox,它可以告诉我我正在执行什么电源计划,而无需使用命令提示符。

我尝试制作一个批处理文件,但这仅执行命令。

start cmd /k powercfg/getactivescheme

当我尝试从命令提示符处执行操作时,它只会在msg框中输出命令文本,而不是实际输出

msg %username% powerconfg/getactivescheme

预先感谢

解决方法

尝试这样(使用for将命令输出到变量中):

@echo off
for /f "tokens=* delims= " %%a in ('powercfg /getactivescheme') do msg * %%a

使用VBScript MsgBox的一个更好的示例,它可以具有自定义标题和图标:

@echo off
for /f "tokens=* delims= " %%a in ('powercfg /getactivescheme') do set "body=%%a"
echo MsgBox "%body%",64,"YOUR TITLE" >temp.vbs
cscript //nologo temp.vbs
del temp.vbs

Learn more on VBScript MsgBox

,

您也可以尝试使用此批处理文件:


@echo off
Set Title="command in a msgbox"
Title %Title%
@for /f "delims=" %%a in ('powercfg /getactivescheme') do (Set "MSG=%%a")
>"%temp%\%~n0.vbs" ( echo MsgBox "%MSG%",vbInformation,%Title% )
 wscript "%temp%\%~n0.vbs" & Del "%temp%\%~n0.vbs"

编辑:如果要在两个括号( Data Info....)之间提取数据,则可以使用处理正则表达式的vbscript像这样:

例如,在我用法语计算机( Utilisation Normale )进行的测试中


@echo off
Set Title="command in a msgbox"
Title %Title%
@for /f "delims=" %%a in ('powercfg /getactivescheme') do (Set "MSG=%%a")
Call :ExtractData "%MSG%" MSG
>"%temp%\%~n0.vbs" ( echo MsgBox "%MSG%",%Title% )
Wscript.exe "%temp%\%~n0.vbs" & Del "%temp%\%~n0.vbs"
Exit
REM------------------------------------------------------------------------
:ExtractData
(
    echo wscript.echo Extract("%~1"^)
    echo Function Extract(Data^)
    echo Dim strPattern,oRegExp,Matches
    echo strPattern = "(?:\()(.*)(?:\))"
    echo Set oRegExp = New RegExp
    echo oRegExp.IgnoreCase = True 
    echo oRegExp.Pattern = strPattern
    echo set Matches = oRegExp.Execute(Data^) 
    echo If Matches.Count ^> 0 Then Extract = Matches(0^).SubMatches(0^)
    echo End Function
)>"%tmp%\%~n0.vbs"
@for /f "delims=" %%a in ('cscript //nologo "%tmp%\%~n0.vbs"') do ( set "%2=%%a")
If Exist "%tmp%\%~n0.vbs" Del "%tmp%\%~n0.vbs"
Exit /B
REM------------------------------------------------------------------------

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。