我想打开一个cmd.exe,然后执行几行代码。
我在网上搜索了一些例子。
我尝试修改的代码:
strToPrint = "Hello World!"
Shell "cmd.exe /K echo " & strToPrint, vbNormalFocus
我找到了How to write message to command window from VBA?
我尝试了多行代码,但这些代码行在不同的命令窗口中执行:
Sub CMD_VBA_Script()
Shell "cmd.exe /K echo Hello World!", vbNormalFocus
Shell "cmd.exe /K color 0a", vbNormalFocus
End Sub
我知道当我调用Shell两次时,它将执行两次。
我的目标是从VBA调用以下脚本:
@echo off
title Matrix
color 0a
mode 1000
:a
echo %random%%random%
goto a
如何在命令提示符下从VBA执行多行代码?
4条答案
按热度按时间jmo0nnb31#
简而言之,你需要创建一个你运行的bat文件。如果你不需要这个bat文件,你可以用
Kill
删除它1sbrub3j2#
"你可以这样写"
这将执行3行命令:
1.变更目录
1.执行vbs文件
1.创建新文件夹
kb5ga3dv3#
看起来您要执行命令提示符批处理文件-批处理是有状态的,因此简单地单独执行每一行与将批处理作为一个整体执行的效果是不同的。
另外两种替代方法涉及通过指示
cmd.exe
的交互式示例执行某些自动化进程重新输入的命令来伪装批处理执行:要么发送窗口消息,要么通过管道进入cmd
进程的stdin
流。我不推荐这两种方法,因为它们固有的脆弱性(即依赖于未记录的行为)因此,* 最佳 * 方法是按照预期执行批处理文件-您需要先将批处理写入临时文件,然后再执行它:
使用下面的代码:https://support.microsoft.com/en-us/kb/195763
2sbarzqh4#
使用“cmd. exe/K”选项和“&”连接多个命令。
在C:\Users%USERNAME%中,使用两个简单的命令创建test.bat:
下面是完整的示例:
使用环境:Windows 10企业版,VBA 7.1