Visual Basic for Applications/從 VBA 執行 FCIV 實用程式
外觀
Microsoft FCIV 實用程式,即檔案校驗和完整性驗證器,是一個免費的可下載壓縮包,允許使用者為任何單個檔案、平面資料夾或遞迴地為所有檔案和資料夾生成 SHA1 和 MD5 雜湊。它可以將其完整的結果包匯出到一個指定的 .xml 檔案。它還可以針對先前儲存的列表進行檔案集的驗證。它用於命令提示符,但可以使用類似 VBA 的程式碼中的 Shell 函式或批處理檔案執行。有關其使用的更多資訊,請參閱:檔案校驗和完整性驗證器實用程式的可用性和描述.
為了完整起見,這裡的命令列程式碼將製作整個 Documents 資料夾的 SHA1 雜湊的 XML 檔案。省略 xml 項和其後的路徑將導致螢幕列表。請注意,包含空格的路徑需要雙引號。
這裡假設 fciv 實用程式位於 FCIV 資料夾中。
c:\>FCIV\fciv.exe -r "C:\users\My Folder\Documents" -sha1 -xml "c:\users\My Folder\Documents\myhash.xml"
VBA 中的 Shell 函式沒有等待功能,因此Shell 行最好作為最後一行。也就是說,即使Shell 命令仍在處理中,它也會在完成之前將控制權傳遞給包含它的過程中的下一行;因此,否則過程的結束將中斷 Shell 函式,並且該過程很可能失敗。在這種情況下,引號也與通常的 VBA 預期略有不同。請注意,所有路徑都包含在兩組雙引號中,並且整個命令列本身隨後包含在另一組雙引號中。假設fciv.exe已下載並安裝如所示,此程式碼行將使用者 Documents 資料夾中每個檔案及其所有子資料夾的所有雜湊字串匯出到myhash.xml檔案。也可以新增一個排除檔案路徑。
請注意,VBA 的使用有一些限制,雖然可以成功地將輸出製作到檔案,但驗證輸出僅限於命令列處理器。有關示例,請參閱頁面檔案校驗和完整性驗證器 (FCIV) 示例。
Sub FCIV()
'runs the fciv function from VBA
Dim Ret
Ret = Shell("""c:\FCIV\fciv.exe"" -r ""C:\users\My Folder\Documents"" -sha1 -xml ""c:\users\My Folder\Documents\myhash.xml""")
End Sub
- 檔案校驗和完整性驗證器 (FCIV) 示例 : 如何從命令列和 VBA 執行 fciv 實用程式的詳細示例。還有關於使用命令提示符螢幕的其他說明。
- 檔案校驗和完整性驗證器實用程式的可用性和描述 : Microsoft 關於 fciv 的頁面,雖然描述有點簡略。
- 在 VBA 中進行資料夾雜湊 :另一個配套頁面,用於製作遞迴資料夾雜湊列表和日誌。使用最新的雜湊演算法,但僅限於不超過約 200 MB 的檔案。