| If WScript.Arguments.UnNamed.Count <> 1 Then Syntax |
| If WScript.Arguments.Named.Count > 1 Then Syntax |
| blnTd = False |
| If WScript.Arguments.Named.Count = 1 Then |
| If UCase( WScript.Arguments.Named( 0 ) ) = "/TD" Then |
| blnTd = True |
| Else |
| Syntax |
| End If |
| End If |
| strISBN = WScript.Arguments.UnNamed( 0 ) |
| strPgTitle = TitleFromHTML( "http://www.amazon.com/gp/product/" & strISBN & "/" ) |
| strPattern = "Amazon.com: (.*): Books: (.*)$" |
| strTitle = RegExpVal( strPattern, strPgTitle, 0 ) |
| strAuthor = RegExpVal( strPattern, strPgTitle, 1 ) |
| If blnTd Then |
| strMsg = strISBN & vbTab & strTitle & vbTab & strAuthor & vbCrLf |
| Else |
| strMsg = vbCrLf & "Title : " & strTitle _ |
| & vbCrLf & "Author : " & strAuthor _ |
| & vbCrLf & "ISBN : " & strISBN |
| End If |
| WScript.Echo strMsg |
| Function RegExpVal( strPattern, strString, idx ) |
| On Error Resume Next |
| Dim regEx, Match, Matches, RetStr |
| Set regEx = New RegExp |
| regEx.Pattern = strPattern |
| regEx.IgnoreCase = True |
| regEx.Global = True |
| Set Matches = regEx.Execute( strString ) |
| RegExpVal = Matches( 0 ).SubMatches( idx ) |
| End Function |
| Function TitleFromHTML( strURL ) |
| Set ie = CreateObject( "InternetExplorer.Application" ) |
| ie.Navigate strURL |
| Do Until ie.ReadyState = 4 |
| WScript.Sleep 10 |
| Loop |
| TitleFromHTML = ie.Document.Title |
| ie.Quit |
| End Function |
| Sub Syntax |
| strMsg = strMsg & vbCrLf & "BookFind.vbs, Version 1.11" & vbCrLf _ |
| & "Display book title and author name for the specified ISBN number." & vbCrLf & vbCrLf _ |
| & "Usage: CSCRIPT //NOLOGO BOOKFIND.VBS isbn [ /TD ]" & vbCrLf & vbCrLf _ |
| & "Where: ""isbn"" is the ISBN (or ASIN) of the book to search for" & vbCrLf _ |
| & " /TD changes the output format to tab delimited" & vbCrLf & vbCrLf _ |
| & "Note: This script uses Amazon's web site to look up author and title." & vbCrLf _ |
| & " To be precise, the data is extracted from the title of the page" & vbCrLf _ |
| & " with URL http://www.amazon.com/gp/product/ followed by the ISBN." & vbCrLf _ |
| & " That means this script will fail when Amazon changes the URLs." & vbCrLf & vbCrLf _ |
| & "Written by Rob van der Woude" & vbCrLf _ |
| & "http://www.robvanderwoude.com" |
| Wscript.Echo( strMsg ) |
| Wscript.Quit( 1 ) |
| End SubCOPY |