2

私は vbs にはあまり詳しくありませんが、バッチ ファイルには慣れてきました。私は職場の簡単な Web サイトを営業や物事の速報として作成しています。基本的に、販売する新しいアイテムのテンプレートであるテキスト ファイルがあります。<-!Insert Item Name Here!-> のようなものを用意して、オフィスにいる技術に詳しくない人が簡単に使えるようにしています。メインの HTML ファイルを編集して新しい .html ファイルをフォルダーに追加し、オプション (価格、説明、部門など) のプロンプトが表示されるテンプレートを使用して新しい .html ファイルを作成するスクリプトを探しています。

これは大変なことのように聞こえますが、簡単にできることを願っています。

基本的に、私はそれが必要です:

- タイトル、説明、価格、および連絡先を変更するプロンプト - このファイルをアイテムのタイトル .html として保存 - 新しい .html ファイルを、日付、html の場所、リンクのタイトルの形式でインデックス ファイルに追加します。

これまでの index.html は、このサイトがいかにシンプルであるかを理解するためのものです...

<HTML>
    <HEAD>

        <TITLE>Bulletin</TITLE>
    </HEAD>

<BODY>
    <CENTER><IMG SRC="logo.jpg">
    <CENTER><IMG SRC="bulletinboardbest.jpg" width=200 height=150></CENTER>
<H1>Bulletin Board</H1>
<font color="666666">To add an item please email <a href="mailto:email@email.com">email@email.com</a></font></CENTER>

<HR>



<!-Insert Items Below-!>

3/25/2013 - <A HREF="1999malibu.html">1999 Chevrolet Malibu For Sale</A>
<BR><BR>

3/28/2013 - <A HREF="orangescrewdriver.html">Orange Screw Driver For Sale</A>

<BR><BR><BR><BR><BR><BR>



</BODY>
</HTML>

アイテム サイト テンプレート

<HTML>
    <HEAD>
        <TITLE>Bulletin</TITLE>
    </HEAD>

<BODY>
    <CENTER><H1>Bulletin</H1></CENTER>






<!-Item Name-!>
    <H1>!!ITEM NAME HERE!!</H1> 





<!-Item Price-!>
    <H2><U>!!ITEM PRICE HERE!!</U></H2>





<!-Contact Info-!>
    <b><Font Color="Blue">!!CONTACT INFO HERE!!</b></font>
        <BR><BR><BR>






<!-Item Description-!>
    !!DESCRIPTION HERE!!



</BODY>
</HTML>

これが難しすぎないことを願っています.... コーディングタイプでない人のためにこれを行う最も簡単な方法を見つけようとしています.

4

1 に答える 1

1

どうぞ:

Option Explicit             
Const ForReading = 1                
Const ForWriting = 2                
Const ForAppending = 8              

Sub collectData()               
    Dim WshShell, sPath, sMain, sName, sDesc, sPrice, sContact          

    ' Save it to a folder on the Desktop            
    set WshShell = WScript.CreateObject("WScript.Shell")            
    sPath = WshShell.SpecialFolders("Desktop")          
    sPath = sPath & "\Scratch Files\"           

    sMain = "Bulletin.html"         

    ' Prompt for title, description, price, and contact         
    sName = getInput("Item Name")           
    sDesc = getInput("Item Description")            
    sPrice = getInput("Item Price")         
    sContact = getInput("Contact Information")          

    Call createFile(sPath, sName, sDesc, sPrice, sContact)          

    ' Add new .html file to index file in the format: date, <a href=html location>title for link</a>            
    Call appendFile(sPath, sMain, sName)            

    set WshShell = Nothing  
    Call Msgbox("Your item (" & sName & ") was added")
End Sub             

Function getInput(prompt)               
    getInput = inputbox(prompt,"Add New Item for Sale")         
End Function                

sub createFile(sPath, sName, sDesc, sPrice, sContact)               
    'Creates a new file, or appends to an existing file         
    Dim objFSO, objArgs(19), sTextFile, objFile, i          

    ' Create the File System Object         
    Set objFSO = CreateObject("Scripting.FileSystemObject")         

    ' Check if folder path exists; if not, create folder            
    If objFSO.FolderExists(sPath) then          
    Else            
        Call objFSO.CreateFolder(sPath)     
    End If          

    ' Save file as <title of item>.html         
    sTextFile = sPath & sName & ".html"             

    ' If file exists, open; else, create it         
    If objFSO.FileExists(sTextFile) Then            
        Set objFile = objFSO.OpenTextFile(sTextFile, ForAppending)      
    Else            
        Set objFile = objFSO.CreateTextFile(sTextFile)      
    End If          

    objArgs(1) = "<HTML>"           
    objArgs(2) = "    <HEAD>"           
    objArgs(3) = "        <TITLE>Bulletin</TITLE>"          
    objArgs(4) = "    </HEAD>"          
    objArgs(5) = ""         
    objArgs(6) = "<BODY>"           
    objArgs(7) = "    <CENTER><H1>Bulletin</H1></CENTER>"           
    objArgs(8) = "<!-Item Name-!>"          
    objArgs(9) = "    <H1>" & sName & "</H1> "          
    objArgs(10) = "<!-Item Price-!>"            
    objArgs(11) = "    <H2><U>" & sPrice & "</U></H2>"          
    objArgs(12) = "<!-Contact Info-!>"          
    objArgs(13) = "    <b><Font Color='Blue'>" & sContact & "</b></font>"           
    objArgs(14) = "        <BR /><BR /><BR />"          
    objArgs(15) = "<!-Item Description-!>"          
    objArgs(16) = "    " & sDesc            
    objArgs(17) = "</BODY>"         
    objArgs(18) = "</HTML>"         

    ' Write the details to the file         
    For i = 1 To UBound(objArgs)            
        objFile.WriteLine objArgs(i) & " "      
    Next            
    ' Append a newline character            
    objFile.WriteLine           

    ' Close the file            
    objFile.Close           

    set objFile = Nothing           
    set objFSO = Nothing            
End Sub             

Sub appendFile(sPath, sMain, sName)             
    Dim objFSO, objArgs(3), sTextFile, objFile, file, i, lBody          

    ' Create the File System Object         
    Set objFSO = CreateObject("Scripting.FileSystemObject")         

    ' Check if folder path exists; if not, create folder            
    If objFSO.FolderExists(sPath) then          
    Else            
        Call objFSO.CreateFolder(sPath)     
    End If          

    'Create filename            
    sTextFile = sPath & sMain           

    ' If file exists, open; else, create it         
    If objFSO.FileExists(sTextFile) Then            
        Set objFile = objFSO.OpenTextFile(sTextFile, ForReading)        
        file = Split(objFile.ReadAll(), vbCrLf)     
        objFile.Close()     
        Set objFile = objFSO.OpenTextFile(sTextFile, ForWriting)        
        For i = Lbound(file) to Ubound(file)        
            If inStr(file(i), "</BODY>") then   
                lBody = i
                Exit For
            Else    
                objFile.WriteLine(file(i))
            End If  
        Next        
    Else            
        Set objFile = objFSO.CreateTextFile(sTextFile)      
        file(1)=""      
    End If          

    objArgs(1) = Date() & " - <A HREF=""" & sName & ".html"">" & sName & " For Sale</A>"            
    objArgs(2) = "<BR /><BR />"         

    ' Write the details to the file         
    For i = 1 To UBound(objArgs)            
        objFile.WriteLine objArgs(i) & " "      
    Next            
    For i = lBody to Ubound(file)           
        objFile.WriteLine(file(i))      
    Next            

    ' Append a newline character            
    objFile.WriteLine           

    ' Close the file            
    objFile.Close           

    set objFile = Nothing           
    set objFSO = Nothing            
End Sub             

collectData()

ノート:

  1. collectData サブでは、ファイルを保存するパスを定義できます (現在、デスクトップの Scratch Files フォルダーにあります)。メインの Web ページ (現在は Bulletin.html) の名前を定義することもできます。
  2. どのプロンプトにもユーザー検証はありません (InputBox は関数 getInput にあります) が、自由に追加してください。getInput 関数のパラメーターの再調整が必要になる "$" のデフォルト値を含めたい場合があります (デフォルト値に別のパラメーターを追加し、inputbox(..) 呼び出しに 3 番目のパラメーターを含めます。詳細については、このページに従ってください。http://msdn.microsoft.com/en-us/library/3yfdhzk5%28v=vs.84%29.aspx )
  3. createFile() サブでテンプレートとして提供された HTML コードをモックアップしました。それを変更したい場合 (つまり、行を追加したい場合)、サブルーチンの上部近くにある objArgs 変数宣言も更新する必要があります。
  4. メイン Web ページの追加テンプレートについても同じことが言えますが (#3 を参照)、それは appendFile() サブにあります。

使用法:

  1. 新しいコンテンツを追加するには、ユーザーはコンピューター上の *.vbs ファイルをダブルクリックする必要があります。
  2. プロンプトは、アイテムを追加するための詳細を案内します。
  3. スクリプトが完了すると、自動的に *.html が作成され、メイン ページが更新され、素敵な MsgBox で通知されます (アイテムのアイテム名が追加されました)。

お役に立てれば。

于 2013-09-19T22:23:02.580 に答える