[COLOR=green]'tek-tips thread329-1696432[/color]
[COLOR=green]'get current "revision" of given file[/color]
[COLOR=green]'create new file with next rev number[/color]
[COLOR=blue]Option[/color] [COLOR=blue]Explicit[/color]
[COLOR=blue]Dim[/color] objFSO
[COLOR=blue]Set[/color] objFSO [COLOR=blue]=[/color] CreateObject("Scripting.FileSystemObject")
[COLOR=blue]Dim[/color] fileToCreate, myFileFolder, myFileBase, myFileExt, newFile, nextRev
fileToCreate [COLOR=blue]=[/color] "C:\Temp\abc123.txt"
[COLOR=blue]if[/color] [COLOR=blue]not[/color] objFSO.FolderExists(objFSO.GetParentFolderName(fileToCreate)) [COLOR=blue]then[/color]
msgbox "Error, folder does not exist", "Error", vbokonly + vbcritical
wscript.quit
end [COLOR=blue]if[/color]
myFileFolder [COLOR=blue]=[/color] objFSO.GetParentFolderName(fileToCreate)
[COLOR=green]'wscript.echo(objFSO.GetFileName(fileToCreate))[/color]
myFileBase [COLOR=blue]=[/color] objFSO.GetBaseName(fileToCreate)
myFileExt [COLOR=blue]=[/color] objFSO.GetExtensionName(fileToCreate)
nextRev [COLOR=blue]=[/color] GetCurrentRev(fileToCreate) [COLOR=blue]+[/color] 1
[COLOR=green]'wscript.echo(GetCurrentRev(fileToCreate))[/color]
newFile [COLOR=blue]=[/color] objFSO.BuildPath(myFileFolder, myFileBase [COLOR=blue]&[/color] "_rev" [COLOR=blue]&[/color] nextRev [COLOR=blue]&[/color] "." [COLOR=blue]&[/color] myFileExt)
[COLOR=blue]Set[/color] newFile [COLOR=blue]=[/color] objFSO.CreateTextFile(newFile, [COLOR=blue]True[/color])
[COLOR=blue]Function[/color] GetCurrentRev(filePath)
Dim folder, files, file, re, pattern, currentRev, fileRev
currentRev [COLOR=blue]=[/color] 0
If [COLOR=blue]Not[/color] objFSO.FolderExists(objFSO.GetParentFolderName(filePath)) [COLOR=blue]Then[/color]
GetCurrentRev [COLOR=blue]=[/color] -1
Exit [COLOR=blue]Function[/color]
End [COLOR=blue]If[/color]
set re [COLOR=blue]=[/color] [COLOR=blue]new[/color] regexp
re.IgnoreCase [COLOR=blue]=[/color] [COLOR=blue]true[/color]
re.Pattern [COLOR=blue]=[/color] objFSO.GetBaseName(filePath) [COLOR=blue]&[/color] "_rev(\d+)"
Set folder [COLOR=blue]=[/color] objFSO.GetFolder(objFSO.GetParentFolderName(filePath))
Set files [COLOR=blue]=[/color] folder.Files
For [COLOR=blue]each[/color] file [COLOR=blue]In[/color] files
If re.Test(file.Name) [COLOR=blue]Then[/color]
fileRev [COLOR=blue]=[/color] re.Execute(file.Name)(0).SubMatches(0)
if fileRev > currentRev [COLOR=blue]then[/color]
currentRev [COLOR=blue]=[/color] fileRev
end [COLOR=blue]if[/color]
End [COLOR=blue]If[/color]
Next
GetCurrentRev [COLOR=blue]=[/color] currentRev
End [COLOR=blue]Function[/color]