2013-03-22 37 views

回答

0

試試這個:

rootFolder = "C:\root" 
dstFolder = "C:\dst" 

Set fso = CreateObject("Scripting.FileSystemObject") 

Set mostRecent = FindMostRecent(fso.GetFolder(rootFolder)) 
For Each f In mostRecent.Files 
    f.Copy fso.BuildPath(dstFolder, f.Name) 
Next 

Function FindMostRecent(fldr) 
    Set mrf = fldr 
    For Each sf In fldr.SubFolders 
    Set mrsf = FindMostRecent(sf) 
    If mrsf.DateLastModified > mrf.DateLastModified Then Set mrf = mrsf 
    Next 
    Set FindMostRecent = mrf 
End Function 
+0

謝謝@Ansgar Wiechers這看起來比我有更好的。但是,當我從cmd提示符運行它時,請調用test.vbs沒有任何反應。最後,我在哪裏設置目標文件夾?再次感謝! – user2195411 2013-03-22 20:04:32

+0

'CLS 組knownpath = C:\一個 FOR/F 「delims =」 %%一個在( 'DIR /廣告/ OD/b 「的%knownpath%」')做( 集名稱= %%一個 ) 複製「%knownpath%\%name%」「C:\ b」'我發現這個工作,謝謝! – user2195411 2013-03-22 20:33:14

+0

您的批處理解決方案將僅檢查'%knownpath%'的直接子文件夾。它不會看起來更深。無論如何,你沒有看到任何東西的原因是因爲我的腳本剛剛找到最近更改的文件夾。它實際上沒有做任何事情。我添加了用於將文件複製到其他文件夾的代碼。 – 2013-03-22 20:41:41

0

我看到你通過你的文件夾作爲參數時遇到一些困難。 Ansgar Wiechers的例子展示瞭如何用硬編碼值來做到這一點。爲了簡單起見,我們通常在我們的答案中進行。

rootFolder = "C:\root" 'target folder (where to search) 
dstFolder = "C:\dst"  'destionation (where to copy) 

但是,如果你更喜歡通過他們的動力像...

CScript my_task.vbs C:\root C:\dst 

...那麼這包括在您的.vbs文件的開頭:

With WScript.Arguments 
    If .Count < 2 Then WScript.Quit(-1) 
    rootFolder = .Item(0) 
    dstFolder = .Item(1) 
End With 

接下來,通過閱讀你的意見,在我看來,你只需要立即的子文件夾,如果是這樣,因爲批處理腳本不太好,我會做這樣的事情:

tmpFile = "result.txt" 'temp file 
With CreateObject("WScript.Shell") 
    .CurrentDirectory = rootFolder 
    .Run "CMD /C DIR /A:D /B /O:-D /T:C > " & tmpFile, 0, True 
    With CreateObject("Scripting.FileSystemObject") 
     With .OpenTextFile(tmpFile) 
      mostRecent = .ReadLine 
     End With 
     .GetFile(tmpFile).Delete 
    End With 
    .CurrentDirectory = mostRecent 
    .Run "CMD /C COPY *.* " & dstFolder, 0, False 
End With 

二手DIR開關:

/A:D = attributes Directory 
/B = bare format 
/O:-D = order by date/time (newly first) 
/O:D = order by date/time (oldest first) 
/T:C = sort by Creation 
/T:A = sort by Last Access 
/T:W = sort by Last Written 
相關問題