如何在没有完整路径的情况下找到文件夹的目标?我想将文件夹中的一组文件复制到另一个文件夹。但我没有目标文件夹的完整路径,比如C:\temp\folder A
源文件夹和目标文件夹的路径为D:\temp\folder X\folder A
我不知道 的名称"folder x"
,但我希望将源"folder A"
in的所有文件C:\ drive
复制到"folder A"
in "D:\ drive"
。我想用 DOS 命令来做。
您不需要为此编写程序,它可以通过单个命令完成,如果在批处理文件中使用,请将 % 替换为 %%。如果您想知道:“delims==”防止在两个字符串中分解“文件夹 A”,我在这里告诉解释器使用 = 作为不存在的分隔符,因此我得到了呈现目标路径的整个字符串。
for /F "delims==" %a in ('Dir /AD /s /b d:\^|find "Folder A"') do copy "c:\temp\folder A" %a
尝试这样的事情:
Set fso = CreateObject("Scripting.FileSystemObject")
WScript.Echo FindFolder(fso.GetFolder("C:\temp"), "folder A")
Function FindFolder(parent, name)
For Each sf In parent.SubFolders
If LCase(sf.Name) = LCase(name) Then
path = sf.Path
Else
path = FindFolder(sf, name)
End If
If Not IsEmpty(path) Then Exit For
Next
FindFolder = path
End Function
如果您知道驱动器号,但不知道确切的文件夹。您可以从驱动器的顶层创建一个目录,然后进行查找,它应该返回您想要的文件夹。
目录 /AD /sd:*文件夹 A* /S
您应该能够使用 for 循环来解析输出。唯一的困难是驱动器D上是否有多个名为“文件夹A”的文件夹。这可能是@“Class Stacker”所指的内容,您是否需要假设它是唯一的。