111 lines
3.5 KiB
Plaintext
111 lines
3.5 KiB
Plaintext
|
'Fhash is a file containing the line we
|
||
|
'want to replace form ?_hash.txt. NHash is
|
||
|
'the hash to replace it.
|
||
|
DIM FSO,HashTextFileName,HashTextFile,HashTextFileLine,MyVar,FirstArg
|
||
|
DIM HashTextFileOutName,HashTextFileOut,HashTextFileOutLine
|
||
|
DIM NHash,FHashFileName,NHashFileName,FHashFile,NHashFile,FHashText,NHashText,Ptr,SystemCommand
|
||
|
|
||
|
Set FSO=CreateObject("Scripting.FileSystemObject")
|
||
|
|
||
|
'Check for help
|
||
|
FirstArg=Wscript.Arguments(0)
|
||
|
If FirstArg="/?" then
|
||
|
Usage
|
||
|
End if
|
||
|
If FirstArg="-?" then
|
||
|
Usage
|
||
|
End if
|
||
|
If FirstArg="?" then
|
||
|
Usage
|
||
|
End if
|
||
|
|
||
|
FHashFileName=FirstArg
|
||
|
NHashFileName=Wscript.Arguments(1)
|
||
|
HashTextFileName=Wscript.Arguments(2)
|
||
|
|
||
|
If not FSO.FileExists (FHashFileName) then
|
||
|
Wscript.Stdout.Writeline("Cannot find" & FHashFileName)
|
||
|
WScript.Quit(1)
|
||
|
End If
|
||
|
If not FSO.FileExists (NHashFileName) then
|
||
|
Wscript.Stdout.Writeline("Cannot find" & NHashFileName)
|
||
|
WScript.Quit(1)
|
||
|
End If
|
||
|
If not FSO.FileExists (HashTextFileName) then
|
||
|
Wscript.Stdout.Writeline("Cannot find" & HashTextFileName)
|
||
|
WScript.Quit(1)
|
||
|
End If
|
||
|
|
||
|
Set FHashFile=FSO.GetFile(FHashFileName)
|
||
|
Set NHashFile=FSO.GetFile(NHashFileName)
|
||
|
Set FHashText=FHashFile.OpenAsTextStream()
|
||
|
Set NHashText=NHashFile.OpenAsTextStream()
|
||
|
'Get the filename
|
||
|
While not FHashText.AtEndOfStream '& not done
|
||
|
FHashLine=FHashText.Readline
|
||
|
' now we have the line from FHash.tmp
|
||
|
' we need to parse out the path\filename and the hash
|
||
|
Ptr = Instr(FHashLine,"=")
|
||
|
FilePath = Left(FHashLine,Ptr)
|
||
|
' if Ptr > 0 then
|
||
|
' done=true
|
||
|
' FilePath = Left(FHashLine,Ptr)
|
||
|
' end if
|
||
|
Wend
|
||
|
|
||
|
'Now get the new hash
|
||
|
While not NHashText.AtEndOfStream
|
||
|
NHashLine=NHashText.Readline
|
||
|
NHash=NHashLine
|
||
|
Wend
|
||
|
|
||
|
Set HashTextFile=FSO.GetFile(HashTextFileName)
|
||
|
Set HashTextFileText=HashTextFile.OpenAsTextStream()
|
||
|
|
||
|
Ptr=InStr(HashTextFileName,".")
|
||
|
HashTextFileOutName=Left(HashTextFileName,Ptr)
|
||
|
HashTextFileOutName=HashTextFileOutName&"tmp"
|
||
|
|
||
|
if FSO.FileExists (HashTextFileOutName) then
|
||
|
FSO.DeleteFile(HashTextFileOutName)
|
||
|
End If
|
||
|
|
||
|
Set HashTextFileOutText=FSO.CreateTextFile(HashTextFileOutName)
|
||
|
|
||
|
While not HashTextFileText.AtEndOfStream
|
||
|
HashTextFileLine=HashTextFileText.Readline
|
||
|
' now we need to check if the line begins with our name
|
||
|
' if it doesn't, just append to the tmp file
|
||
|
' if it does, replace the line with the new one.
|
||
|
Ptr=InStr(HashTextFileLine,"=")
|
||
|
if Left(HashTextFileLine,Ptr)=FilePath then
|
||
|
' do our replacement here
|
||
|
HashTextFileOutText.Writeline FilePath & NHash
|
||
|
else
|
||
|
' do our append here
|
||
|
HashTextFileOutText.Writeline HashTextFileLine
|
||
|
End If
|
||
|
Wend
|
||
|
|
||
|
' now rename the tmp file to the txt file.
|
||
|
' system call is easiest here.
|
||
|
Set ShellObj = CreateObject("WScript.Shell")
|
||
|
myVar="mv " & HashTextFileOutName & " " & HashTextFileName
|
||
|
Call ShellObj.Run(myVar)
|
||
|
|
||
|
Sub Usage()
|
||
|
Wscript.stdout.writeline("")
|
||
|
Wscript.stdout.writeline("Hashrep.vbs: Replaces the hash of file you are updating in ?_hash.txt")
|
||
|
Wscript.stdout.writeline(" with the file's new hash, to be used for future backprops.")
|
||
|
Wscript.stdout.writeline("")
|
||
|
Wscript.stdout.writeline("Syntax:")
|
||
|
Wscript.stdout.writeline("")
|
||
|
Wscript.stdout.writeline(" Hashrep.vbs %TMP%\Fhash.tmp %TMP%\Nhash.tmp %BINARIES%\dump\cathash\?_Hash.txt")
|
||
|
Wscript.stdout.writeline("")
|
||
|
Wscript.stdout.writeline(" Fhash.tmp: Conatins the file path and its old hash")
|
||
|
Wscript.stdout.writeline(" Nhash.tmp: Conatins the file's new hash")
|
||
|
Wscript.stdout.writeline(" ?_Hash.txt: Conatins all of ?.cat's hash's and there associated file names.")
|
||
|
Wscript.stdout.writeline("")
|
||
|
Wscript.stdout.writeline("This script is called by %BLDTOOLS%\updtcat.cmd")
|
||
|
Wscript.Quit(0)
|
||
|
End Sub
|