我正在使用call Shell()
在VBA上运行cmd命令,但我想获取命令行的输出以将其粘贴到范围内。
forfiles /P C:\Directory\ /S /D %DATE:~4,10%
这将返回99%的时间,或者只返回一个字符串(1个文件名),显示今天更新的文件。
我希望将此输出字符串粘贴到Range中。有人知道重定向输出的方法吗? 我想我可以让cmd行写入csv然后导入,但这对我来说效率低下。
答案 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代码也可以在完成后删除批处理输出文件。