如何在没有完整路径的情况下找到文件夹的目的地?
我想将文件夹中的文件集复制到另一个文件夹。但是我没有目标文件夹的完整路径,说C:\temp\folder A
是来源
目的地的路径为D:\temp\folder X\folder A
我不知道"folder x"
的名称,但我希望"folder A"
中所有来源C:\ drive
的文件都被复制到"folder A"
中的"D:\ drive"
。我想用DOS命令来做。
答案 0 :(得分:0)
如果您知道驱动器号,但不知道确切的文件夹。你可以从驱动器的顶层做一个目录,然后找一个find,它应该返回你想要的文件夹。
Dir / AD / s d:*文件夹A * / S
您应该能够使用for循环来解析输出。唯一的困难是如果驱动器D上有多个名为“文件夹A”的文件夹。这可能是@“Class Stacker”所指的,你需要假设它是唯一的。
答案 1 :(得分:0)
尝试这样的事情:
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
答案 2 :(得分:0)
您不需要这样的程序,可以通过单个命令完成,如果在批处理文件中使用,则将%替换为%%。如果你想知道:“delims ==”会破坏两个字符串中“文件夹A”的分解,我告诉解释器这里使用= as分隔符,这是不存在的,所以我得到整个sttring呈现目标路径。
for /F "delims==" %a in ('Dir /AD /s /b d:\^|find "Folder A"') do copy "c:\temp\folder A" %a