Hash 如何查找文件块的哈希,而不必将该块保存在单独的文件中?
我想找到一个文件块的散列,并将该散列保存在另一个文件中。我想直接执行,而不必将块保存在单独的文件中。。这是我的节目Hash 如何查找文件块的哈希,而不必将该块保存在单独的文件中?,hash,vbscript,md5,adodb,extraction,Hash,Vbscript,Md5,Adodb,Extraction,我想找到一个文件块的散列,并将该散列保存在另一个文件中。我想直接执行,而不必将块保存在单独的文件中。。这是我的节目 Const chunksize = 1024000000 dim istream,ostream Sub WriteChunk(data) Set oStream = CreateObject("ADODB.Stream") oStream.Open oStream.Type = 1 oStream.Write data Dim WshSh
Const chunksize = 1024000000
dim istream,ostream
Sub WriteChunk(data)
Set oStream = CreateObject("ADODB.Stream")
oStream.Open
oStream.Type = 1
oStream.Write data
Dim WshShell, oExec, input,objfile2,str1
Set WshShell = CreateObject("WScript.Shell")
Set oExec = WshShell.exec("C:\Users\Administrator\desktop\experimenting\md5.exe_
-odup5.txt """ & ostream.write & """")
input = ""
Do While oexec.status=0
WScript.Sleep 50
Loop
oStream.Close
End Sub
Set iStream = CreateObject("ADODB.Stream")
iStream.Open
iStream.Type = 1 'binary
Const FOR_READING = 1
strFolder = "C:\test"
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder(strFolder)
Set colFiles = objFolder.Files
For Each objFile In colFiles
iStream.LoadFromFile objfile.path
Do Until istream.EOS
WriteChunk iStream.Read(chunksize)
loop
Next
ShowSubFolders(objFolder)
Sub ShowSubFolders(objFolder)
Set colFolders = objFolder.SubFolders
For Each objSubFolder In colFolders
set colFiles = objSubFolder.Files
For Each objFile2 In colFiles
iStream.LoadFromFile objfile2.path
Do Until istream.EOS
WriteChunk iStream.Read(chunksize)
loop
Next
ShowSubFolders(objSubFolder)
Next
End Sub
iStream.Close
ostream.write不能用作参数。但是我不明白用什么来代替那……请帮忙
Set oExec = WshShell.exec("C:\Users\Administrator\desktop\experimenting\md5.exe_
-odup5.txt """ & ostream.write & """")
上述操作将失败,因为不能在字符串中使用换行。另外,ostream.write
表示您正在尝试向ADODB流对象写入内容。您实际想要做的事情(假设我正确理解了您的问题,并且您正在使用md5.exe
)如下所示:
WshShell.Run "C:\...\md5.exe -ochunk_md5.txt -d""" & data & """"
WshShell.Run "%COMSPEC% /c md5.exe -o- -d""" & data & """>chunk_md5.txt", 1, True
Set md5 = WshShell.Exec("md5.exe -o- -d""" & data & """")
Do While md5.Status = 0
WScript.Sleep 100
Loop
objFSO.OpenTextFile("chunk_md5.txt", 8, True).Write md5.StdOut.ReadAll
要将所有数据块的结果写入同一文件,请执行以下操作:
WshShell.Run "C:\...\md5.exe -ochunk_md5.txt -d""" & data & """"
WshShell.Run "%COMSPEC% /c md5.exe -o- -d""" & data & """>chunk_md5.txt", 1, True
Set md5 = WshShell.Exec("md5.exe -o- -d""" & data & """")
Do While md5.Status = 0
WScript.Sleep 100
Loop
objFSO.OpenTextFile("chunk_md5.txt", 8, True).Write md5.StdOut.ReadAll
或者像这样:
WshShell.Run "C:\...\md5.exe -ochunk_md5.txt -d""" & data & """"
WshShell.Run "%COMSPEC% /c md5.exe -o- -d""" & data & """>chunk_md5.txt", 1, True
Set md5 = WshShell.Exec("md5.exe -o- -d""" & data & """")
Do While md5.Status = 0
WScript.Sleep 100
Loop
objFSO.OpenTextFile("chunk_md5.txt", 8, True).Write md5.StdOut.ReadAll
或者您可以使用计算哈希并将结果写入文件。WshShell.Run“C:\…\md5.exe-ochunk\u md5.txt-d”“&数据和”“不起作用。”。。它说类型不匹配我正在尝试将所有块的散列写入一个文件。我不希望将块单独保存在文件中。