2013-07-25 34 views
0

我正在創建一個項目,用於創建一個腳本以便在工作中使用以自動執行我們的某個過程。VBS腳本查找某些擴展名的所有文件並將它們複製到特定目的地

我希望腳本檢查用戶名的輸入,以搜索.doc,.docx,.pdf,.pst等文件的指定用戶配置文件路徑。並將它們按照原樣複製到網絡驅動器位置上創建的文件夾中。

我的主要問題是什麼是命令或命令鏈來檢查從指定的用戶路徑開始的文件夾和子文件夾,爲這些擴展JUST文件,我想複製它們,但沒有得到它只是複製一遍又一遍的同一個文件。對不起,如果這是令人困惑。

回答

0

我想我已經理解了大部分需求,而且這可以通過在Windows中使用.BAT文件方法更容易實現。這個批處理文件(.bat)可以運行命令,如拷貝/刪除等

因此,創建一個名爲test.bat的文件,文件裏面添加下面的腳本:

::XCOPY source [destination] 
XCOPY "C:\Temp\*.doc" "C:\Temp\another" 

這是什麼呢?那麼它使用XCOPY命令複製具有.doc擴展名的C:\Temp direcory內的任何文件。這些文件將被複制到名爲C:\Temp\another的文件夾中。

XCOPY有兩個主要參數:源和目標。源是文件當前所在的位置,目標是您要將文件複製到的位置。所有的可用選項的更多信息上可以找到:

http://support.microsoft.com/kb/240268

爲了運行該文件,只需雙擊它,或者安排其在需要時運行。

讓我知道如果這符合您的要求,我沒有完全理解關於用戶名輸入的一點?

1

This answer提供遞歸遍歷文件夾樹的示例代碼。

Set extensions = CreateObject("Scripting.Dictionary") 
extensions.CompareMode = vbTextCompare 'case-insensitive 
extensions.Add "doc", True 
extensions.Add "docx", True 
extensions.Add "pdf", True 
extensions.Add "pst", True 
... 

,然後檢查這樣的處理的文件的擴展名:擴展名列表可以通過創建字典來處理

For Each f In fldr.Files 
    If extensions.Exists(objFso.GetExtensionName(f.Name)) Then 
    f.Copy targetFolder & "\" 
    End If 
Next 

當目的地是一個文件夾中的尾部反斜槓是必需的,否則你必須指定完整的目標路徑,包括目標文件名。

相關問題