Vba 如果路径中有未知的文件夹名称,如何更好地缩小我的目录路径?

Vba 如果路径中有未知的文件夹名称,如何更好地缩小我的目录路径?,vba,cmd,directory,Vba,Cmd,Directory,我有一个vba脚本,它将使用CMD循环遍历文件夹中的所有xml文件,如下所示 CreateObject(“WScript.Shell”).Exec(“CMD/C DIR”“D:\data\*.xml*”“/S/B/A:-D”) 如何更改路径,使其仅在名为“1”的文件夹中查找,而忽略名为“2”、“3”等的文件夹,如果路径中有未知的文件夹名称,则如下图所示 CreateObject(“WScript.Shell”).Exec(“CMD/C DIR”“D:\data\UNKNOWN\1\*.xml*”

我有一个vba脚本,它将使用CMD循环遍历文件夹中的所有xml文件,如下所示

CreateObject(“WScript.Shell”).Exec(“CMD/C DIR”“D:\data\*.xml*”“/S/B/A:-D”)

如何更改路径,使其仅在名为“1”的文件夹中查找,而忽略名为“2”、“3”等的文件夹,如果路径中有未知的文件夹名称,则如下图所示

CreateObject(“WScript.Shell”).Exec(“CMD/C DIR”“D:\data\UNKNOWN\1\*.xml*”/S/B/A:-D”)

这会将返回的路径数从34000缩小到1500,请尝试以下操作:

Sub test()

Dim list As Variant

list = Split(CreateObject("WScript.Shell").Exec("CMD /C DIR /S /B  D:\data\* | findstr 1 | findstr xml").StdOut.ReadAll, vbNewLine)

End Sub

^^我只是想建议为未知添加一个较早的通配符我自己刚刚发现了这个,该死,我能在vba中使用powershell instread of cmd吗?你也可以使用cmd,请参见我的答案。我在尝试使用powershell时遇到了一个拒绝访问的错误不幸的是,我得到了0个返回的文件,这是1和xml的正确语法吗?请尝试编辑后的代码,使其与
CreateObject(“WScript.Shell”).Exec(“CMD/C DIR/S/B D:\data\*.xml | findstr 1”)
谢谢您的帮助