我对vbs不太熟悉,但是我在批处理文件方面变得不错。我正在为我的工作地点创建一个简单的网站,作为销售和事物的公告。基本上我有一个文本文件,它是新商品的模板。我喜欢&lt; - !在此插入项目名称! - &gt;为我们办公室里的非技术人士提供便利。我正在寻找一个脚本来编辑主HTML文件,将新的.html文件添加到文件夹中,并使用模板创建一个新的.html文件,并提示选项(价格,设计,部门等)< / p>
我知道这听起来很多,但我希望它可以轻松完成。
基本上,我需要它:
- 提示更改标题,说明,价格和联系方式 - 将此文件另存为项目标题.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>
希望这不是太难......试图为非编码类型的人找出最简单的方法。
答案 0 :(得分: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()
注意:
用法:
希望这有帮助。