从批处理文件返回错误消息

2024-02-08

我正在从 VBA 对批处理文件进行脱壳,以启动 exec 文件,例如 Notepad.exe。如果未找到 exec 文件,我想向 VBA 返回指示或消息。到目前为止,我一直通过让bat 将消息写入文本文件,然后让VBA 检查该文件来完成此操作。这种方法似乎有点笨拙,但到目前为止我还没有遇到替代方法。

@echo off

set EM="C:\Msg.txt"
if exist %EM% del %EM%

set FL=%SystemRoot%\system32\xnotepad.exe

if not exist %FL% (
echo %FL% not found > %EM%
goto done
)

Start "" %FL%

:done

in VBA,

Dim oSHELL, batchname, usr, pass, exitcode
Set oSHELL = VBA.CreateObject("WScript.Shell")
usr="username"
pass="password"
batchname="batchFile.bat"

' Arguments ToRun, Style (0=hide), Waitforend
exitcode = oSHELL.Run(""""+batchname+""" """+usr+""" """+pass+"""", 0, True)

在你的批次中

exit somenumber

应该返回somenumber to exitcode


我使用的实际代码:

Sub q27097252()
Dim oSHELL, batchname, usr, pass, exitcode
Set oSHELL = VBA.CreateObject("WScript.Shell")
usr = ""
pass = ""
batchname = "c:\106x\q27097252.bat"

' Arguments ToRun, Style (0=hide), Waitforend
exitcode = oSHELL.Run("""" + batchname + """ """ + usr + """ """ + pass + """", 0, True)
MsgBox (exitcode)
End Sub

带批次c:\106x\q27097252.bat

@ECHO OFF
SETLOCAL
EXIT %time:~-1%

GOTO :EOF

在 VBA 代码编辑器/F5 中运行得非常好(预期结果:消息框随机显示 0..9)


使用 Windows XP 时的以下评论/解决方案:

会出现exit /b number选项只是设置errorlevel然而exit number实际上设置终止代码。
XP 下终止代码为 0,因为cmd.exe实际上正常终止 - 而 Windows 7(及更高版本)似乎分配当前errorlevel作为退出代码cmd.exe过程。
因此,使用exit number优先考虑与 XP 的兼容性 — 代码经过调整以适应。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从批处理文件返回错误消息 的相关文章

  • 使用 VBScript 在日期字段值上选择错误的数据

    我有一张包含以下数据的表 现在 Excel 共有 36 个任务 每个任务有 4 列 第一个任务 即 Task1 名称将始终从 L 列开始 144 列描述了 36 个任务 现在我们需要按行进行检查 并需要检查 TNStart 开始日期 你们能
  • Windows C++ 中的键盘钩子还是什么?

    我希望构建自己的应用程序 它可以将键盘命令 消息 发送到 Windows 操作系统 例如 当我按下组合键 ctrl shift n 时 我希望启动 notepad exe 我怎样才能做到这一点 您对所使用的概念有什么建议吗 我读过 何时使用
  • 使用 XMLHTTP 进行抓取会在特定类名处引发错误

    我正在尝试使用此代码抓取网站以提取姓名和联系人 Sub Test Dim htmlDoc As Object Dim htmlDoc2 As Object Dim elem As Variant Dim tag As Variant Dim
  • 在哪里可以找到 Windows 7 UX 指南中推荐的图标/动画?

    Windows 7 UX 指南有很好的插图和图标示例 但我在 SDK 中确实找不到它们 他们藏在某个地方 还是找不到 如果您谈论的是常见的 UI 图标 那么您应该以编程方式获取它们 例如 您可以使用 var errIcon HICON be
  • 所见即所得与 Unicode

    我在 Delphi 中编写了一个 Windows 程序 该程序使用 GetCharWidth 和 Em Square 将文本非常精确地放置并换行到屏幕和打印机 这对于 ANSI 文本效果很好 您只需要检索和计算 255 个字符的宽度 但当您
  • Excel - 公式或宏根据链接到另一个单元格的另一个单元格填充单元格

    在 Excel 中 我试图根据其他两个单元格中包含的值创建一个单元格 我需要单元格 X 和 Y 来获取基于单元格 L 和 的数据 就像这样 X Y L 1 2 3 4 5 6 A 6 1 1 6 1 6 1 7 1 7 2 7 2 8 1
  • Sencha Cmd 5 + Java 8 错误

    在我的 Windows 构建服务器上安装 Java 8 JDK 后 执行以下命令时遇到以下错误sencha命令 C gt sencha Error Registry key Software JavaSoft Java Runtime En
  • 如何让R使用所有处理器?

    我有一台运行 Windows XP 的四核笔记本电脑 但查看任务管理器 R 似乎一次只使用一个处理器 如何让 R 使用全部四个处理器并加速我的 R 程序 我有一个基本系统 我使用它在 for 循环上并行化我的程序 一旦您了解需要做什么 此方
  • 如何在缩进层次结构中找到父级?

    我目前有一张 Excel 工作表 其中包含缩进的项目层次结构 如下所示 每个项目都缩进 每个缩进四个空格 以显示它如何适应整体层次结构 我已经能够创建一个 级别 列 将缩进级别转换为数字 Item Level Parent P1 1 N A
  • 使用图表时避免使用“激活”和“选择”(Excel)

    我知道使用Activate and Select在 Excel 中 VBA 不是最佳实践 我看过有关如何在处理范围时避免它们的参考资料 例如 LINK https stackoverflow com questions 10714251 e
  • 使用宏从 Excel 电子表格中删除任何非指定字符

    我正在尝试通过删除任何非标准字符来清理 Excel 中的 CSV 文件 我唯一关心保留的字符是 A Z 0 9 和一些标准标点符号 任何其他字符 我想删除 当它找到包含我未指定的任何字符的单元格时 我已经得到了以下宏来删除整行 但我不确定如
  • 将 kinit 与 keytab 文件一起使用时会发生什么

    希望对kinit和keytab文件的使用有更多的了解 例如 如果我已经为某个服务生成了一个密钥表文件 该服务通过以下方式注册到活动目录 ktpass mapuser to someuseraccount ktab k mykeytab a
  • 为什么 Windows 命令 DIR 在搜索 *.tif 文件时也会输出 *.tiff 文件?

    我想使用 Windows 命令DIR为了找到唯一TIF文件 即具有扩展名的文件 tif 因此我使用以下小批处理文件 for f delims a IN dir b a d s C wolter testversion input tif d
  • VB6/VBA 中对象清除/数组释放真的有必要吗(优点/缺点?)[重复]

    这个问题在这里已经有答案了 我从使用静态代码分析 特别是 Aivosto 的项目分析器 中学到了很多关于 VB 的知识 它检查的一件事是您是否清除了所有对象和数组 我以前只是盲目地这样做 因为PA这么说 但现在我对 VB 释放资源的方式有了
  • npm package.json bin 无法在 Windows 上运行

    我正在尝试通过 package json 启动我的 cli 工具bin财产 我有以下内容 name mycli bin bin mycli 当我在包路径中打开 cmd 并输入 mycli 时 它表示该命令无法识别 我应该运行 npm 命令吗
  • 在 Vista 上调用 RPC 时出现“不支持操作”

    我的应用程序使用 Microsoft RPC 进行进程间通信 当两个进程在同一台机器上运行并且一个进程尝试调用声明为 IDL 表示法 的方法时 error status t rpcMethod in pipe byte parameter
  • 勾选或取消勾选复选框时输入时间戳

    我有一个 3 行 7 列的工作表 A1 G3 A 和 B 列有 6 个复选框 A1 B3 A 列和 B 列中的框分别链接到 C 列和 D 列 E 列和 F 列中的单元格只是分别复制 C 列和 D 列 实时E1细胞是 C1 and F3细胞是
  • 有什么办法可以加快这个 VBA 算法的速度吗?

    我正在寻找实现 VBAtrie http en wikipedia org wiki Trie 构建能够在相对较短的时间内 少于 15 20 秒 处理大量英语词典 约 50 000 个单词 的算法 由于我实际上是一名 C 程序员 这是我第一
  • 从 VBA 访问串行端口的最佳方法是什么?

    从 VBA 访问串行端口的最佳方法是什么 我需要我们的一些销售代表能够通过 PowerPoint 中的操作按钮通过串行端口发送简单的字符串 我不常用 VBA 尤其是像这样的事情 通常我会把它变成某种应用程序 但实际上我认为这个想法并没有那么
  • Windows 上最快的屏幕捕获方法

    我想为Windows平台编写一个截屏程序 但不确定如何捕获屏幕 我知道的唯一方法是使用 GDI 但我很好奇是否还有其他方法可以实现此目的 如果有的话 哪种方法产生的开销最小 速度是首要任务 截屏程序将用于录制游戏镜头 不过 如果这确实缩小了

随机推荐

  • 在MYSQL中复制表而不一次复制一行

    我想复制一个非常大的表 但我不想逐行复制它 有办法复制吗 例如 您可以 TRUNCATE 不删除行 行 所以我想知道是否有类似的东西可以复制整个表 更新 逐行插入非常痛苦 因为有 120M 行 无论如何要避免这种情况 MySQL 不再具有可
  • ggplot2:修复因子水平的颜色

    我正在开发一个更大的项目 我正在 ggplot2 中创建多个绘图 这些图涉及在几个不同的谨慎类别 例如 国家 物种 类型 中绘制几种不同的结果 我想完全修复离散类型到颜色的映射 以便 Type A 始终显示为红色 Type B 始终显示为蓝
  • ngrx 中的多个商店

    我正在使用 Angular 和 ngrx 编写一个企业级应用程序 目的是自始至终使用 Flux 和 ngrx 为了重用和可分离性 我们 至少 需要两个彼此不交互的状态存储 但我们确实需要两个存储同时处于活动状态 并且可能从相同的组件进行访问
  • 使用 jquery fileupload basic 以编程方式删除文件

    我使用blueimp文件上传插件 基础版 来实现多文件上传 我正在尝试实现允许用户删除排队上传文件的功能 我无法弄清楚如何正确访问文件数组 每次add回调中 索引为0 文件数组长度为1 仅包含用户点击删除的文件 我正在为排队到 div 的每
  • Android 文本转语音库? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我将开发需要实现文本转语音的应用程序 请给我任何强大的图书馆链接 这对我来说太好了 除了 Flite 到引擎库 哪个图书馆最适合这样做 提
  • 我是否“不想”使用读/写锁而不是普通互斥锁?

    同步对共享资源的访问时 是否有原因not使用读 写锁而不是普通互斥锁 这基本上只是一个写锁 besides它具有比我可能需要的更多功能的哲学原因 换句话说 如果我只是默认将读 写锁作为我首选的同步结构 我是否会搬起石头砸自己的脚 在我看来
  • NGINX + Gunicorn + Flask - 502 错误网关 - 套接字文件权限被拒绝

    我们正在尝试将 NGINX 设置为 Gunicorn Python 应用程序的反向代理 我们一直在关注 Digital Ocean 的本指南 https www digitalocean com community tutorials ho
  • GMap.Net 在控件中不显示完整地图

    我正在尝试制作一个能够显示地图的小型应用程序 我遇到了 GMap Net 它非常适合我的目的 除了地图没有完全显示在控件中 我附上一张图片 希望您能理解我的问题 My code of the load button is private v
  • 在 swagger UI 尝试中发送动态自定义标头

    我在java中使用swagger 我正在代码中通过 requestAttributes 读取名为 callerId 的标头 我没有通过注释 HeaderParam 使用标头 由于这个原因 标题部分不会显示在 swagger UI 中进行尝试
  • 在 C# 中使用 byte/short 等有什么理由?

    超过int类型 很多代码要么使用 int 要么使用 double floats 我知道有 NET 移动版本 因此 byte short 有自己的用途 但对于桌面应用程序有什么意义吗 当我从事 C 工作 游戏编程 时 我非常了解我使用的每种数
  • Java中Thread的自定义实现:通过JNI可以吗?

    是否可以以安全 正确的方式在 Java 中 使用 JNI 实现自定义 Thread 类 假设我自己写NewThread类 与本地人start 方法 它分叉执行 调用run 在分叉线程中并返回 那可能吗 JVM 会抱怨吗 根据规范 它 合法
  • 选中时更改切换按钮的背景颜色

    我正在尝试区分单击时切换按钮的状态 我有下面的片段
  • 如何使用 Xamarin.Forms 将搜索栏添加到页面顶部,例如工具栏项目图标

    我正在此页面中使用 masterdetail 页面 我正在使用选项卡式页面 现在我想在页面顶部显示工具栏图标和搜索栏 我能够放置工具栏图标 但与搜索栏斗争 如何将其放置在其顶部行为应与 Whatsapp 应用程序和 YouTube 应用程序
  • 检查变量是否属于 Typescript 中的自定义类型

    我正在尝试检查变量是否属于某种类型 Code type GeneralType SubTypeA SubTypeB type SubTypeA type1 type2 type SubTypeB type3 type4 function s
  • 在 ggplot2 示例中绘制来自 vegan 的 ordiellipse 不起作用

    我正在尝试在 ggplot 中绘制一个带有椭圆体的 pca 双图 我在中找到了一个例子这个线程在这里 https stackoverflow com questions 13794419 plotting ordiellipse funct
  • Ninject 会调用 dispose 并关闭 NHibernate Isession 吗?

    我将 ASP NET MVC 3 与 Ninject 和 NHibernate 一起使用 当想到 DI 时 我认为获得资源的人也确保关闭它 在这种情况下 Ninject 应该负责 但我不确定 Ninject 在使用 InRequestSco
  • Google日历api CalendarList列表返回空元素

    EDIT 原来的海报要求这个C 但是无论使用什么库都会出现同样的问题 其解决方案是独立于语言 使用 C 库 string service account email protected cdn cgi l email protection
  • 对话框中存在的数字选择器 (Android)

    我正在尝试在我的应用程序中实现 NumberPicker 我希望视图如图所示对话指南 http developer android com guide topics ui dialogs html 即 当我实现数字选择器时我得到什么 另外
  • 在 Javascript 中将属性附加到冒泡事件对象

    在 Chrome Firefox 中 我可以将自定义属性附加到一个处理程序中的事件对象 并在同一事件的不同处理程序中读取它们 即使事件处理是冒泡的 我不能在 IE 中做同样的事情 当事件冒泡时 我的自定义属性丢失了 您知道是否有任何解决方案
  • 从批处理文件返回错误消息

    我正在从 VBA 对批处理文件进行脱壳 以启动 exec 文件 例如 Notepad exe 如果未找到 exec 文件 我想向 VBA 返回指示或消息 到目前为止 我一直通过让bat 将消息写入文本文件 然后让VBA 检查该文件来完成此操