将cmd行过程的输出定向到Excel

时间:2014-02-26 13:33:53

标签: vba redirect excel-vba cmd excel

我正在使用call Shell()在VBA上运行cmd命令,但我想获取命令行的输出以将其粘贴到范围内。

像基本的东西:

forfiles /P C:\Directory\ /S /D %DATE:~4,10%

这将返回99%的时间,或者只返回一个字符串(1个文件名),显示今天更新的文件。

我希望将此输出字符串粘贴到Range中。有人知道重定向输出的方法吗? 我想我可以让cmd行写入csv然后导入,但这对我来说效率低下。

1 个答案:

答案 0 :(得分:2)

您可以将批处理脚本的输出重定向到文件,然后read those file contents into a variable inside your VBA program吗?然后你可以将该变量值加载到你的范围内。

您可以像这样阅读文件内容:

Open "C:\batch_output.txt" for input as #1
Input #1, textValue
Close #1

如果需要,您的VBA代码也可以在完成后删除批处理输出文件。

相关问题