从 nsExec::Exec 获取输出
get output from nsExec::Exec
我正在尝试从 nsExec 获取标准输出。例如,这应该在 MessageBox 中显示当前日期:
nsExec::Exec 'date /t'
Pop [=11=]
MessageBox MB_OK "[=11=]"
显然你不是那样做的。它只显示 1
。从 nsExec::Exec
获取输出的正确方法是什么
::Exec 只是隐藏标准输出,你想要 ::ExecToStack。
语法如下所示:
nsExec::Exec '"App"'
Pop [=10=] ; Exit code / error
nsExec::ExecToStack '"App"'
Pop [=10=] ; Exit code / error
Pop ; stdout output
您收到错误代码是因为 time
是 cmd.exe 中的内置命令,而不是应用程序。您需要调用 cmd.exe 来执行该命令:
nsExec::ExecToStack '"$sysdir\cmd.exe" /C time /t'
Pop [=11=] ; Exit code / error, should be 0
Pop ; Time
如果你只想知道时间,你也可以这样做:.
System::Call 'kernel32::GetLocalTime(p@r0)'
System::Call '*[=12=](&i2, &i2, &i2, &i2, &i2.r4, &i2.r5, &i2.r6, &i2)'
IntFmt "%.2d" ; 0 pad
IntFmt "%.2d" ; 0 pad
MessageBox mb_ok ::
我正在尝试从 nsExec 获取标准输出。例如,这应该在 MessageBox 中显示当前日期:
nsExec::Exec 'date /t'
Pop [=11=]
MessageBox MB_OK "[=11=]"
显然你不是那样做的。它只显示 1
。从 nsExec::Exec
::Exec 只是隐藏标准输出,你想要 ::ExecToStack。
语法如下所示:
nsExec::Exec '"App"'
Pop [=10=] ; Exit code / error
nsExec::ExecToStack '"App"'
Pop [=10=] ; Exit code / error
Pop ; stdout output
您收到错误代码是因为 time
是 cmd.exe 中的内置命令,而不是应用程序。您需要调用 cmd.exe 来执行该命令:
nsExec::ExecToStack '"$sysdir\cmd.exe" /C time /t'
Pop [=11=] ; Exit code / error, should be 0
Pop ; Time
如果你只想知道时间,你也可以这样做:.
System::Call 'kernel32::GetLocalTime(p@r0)'
System::Call '*[=12=](&i2, &i2, &i2, &i2, &i2.r4, &i2.r5, &i2.r6, &i2)'
IntFmt "%.2d" ; 0 pad
IntFmt "%.2d" ; 0 pad
MessageBox mb_ok ::