VBScript:使用Excel中的文件夹结构创build文件

我拼凑了以下VBS文件以读取Excel源文件,并使用基于Excel列A的名称和基于列B(连续)的内容创build文件。 这一切工作…

Dim xlsFile Dim objExcel Dim outFile Dim path path = "C:\Documents and Settings\Andy\Desktop\SHORTURLs\JSPs" xlsFile = path & "\urls.xls" Set objExcel = WScript.CreateObject("Excel.Application") objExcel.Workbooks.open(xlsFile) ' Create the File System Object Set objFSO = CreateObject("Scripting.FileSystemObject") intRow = 2 'Row 1 contains headings ' Here is the loop that cycles through the cells Do Until objExcel.Cells(intRow,1).Value = "" strFile = objExcel.Cells(intRow, 1).Value strDestURL = objExcel.Cells(intRow, 2).Value ' -- The heart of the create file script 'Set objTextFile = objFSO.CreateTextFile("./" & strFile & ".jsp", True) outFile = path & "" & strFile & ".jsp" Set objTextFile = objFSO.CreateTextFile(outFile, True) ' Prep file contents sText = "<%" & vbCrLf sText = sText & "//REDIRECT301" & vbCrLf sText = sText & "//System.out.println(""<LOGGED> "" + " & strDestURL & ");" & vbCrLf sText = sText & "String dest = """ & strDestURL & """;" & vbCrLf sText = sText & "response.setStatus(response.SC_MOVED_PERMANENTLY); // response.SC_MOVED_TEMPORARILY [OR] response.SC_MOVED_PERMANENTLY" & vbCrLf sText = sText & "response.setHeader(""Location"", dest);" & vbCrLf sText = sText & "response.setHeader(""Connection"", ""close"");" & vbCrLf sText = sText & "%>" ' Write a line. objTextFile.Write(sText) objTextFile.Close intRow = intRow + 1 Loop objExcel.Quit WScript.Quit 

但是,现在我需要修改VBS以基于列A的文件夹结构创build文件(列B不受影响)。 Excel架构:

 +----------------------+----------------------+ | Column A | Column B | +----------------------+----------------------+ | /folder/filename.jsp | /url/destination.jsp | +----------------------+----------------------+ | /folder/filename.jsp | /url/destination.jsp | +----------------------+----------------------+ | /folder/filename.jsp | /url/destination.jsp | +----------------------+----------------------+ 

我将如何去创build这些文件夹中的文件夹和文件? 仅供参考:我相信文件夹结构应该不超过1深(即/folder/file.xxx而不是/folder/folder/file.xxx )。

PS。 我知道JSP文件中的response.setHeader()是不好的做法,但可悲的是,我们被迫这样做。

使用FSO。

  1. .GetParentFolderName()从文件规格中获取目录
  2. .BuildPath()预先添加一个公共path前缀
  3. .FolderExists()来检查你是否需要创build目录
  4. .CreateFolder()如果需要的话
Interesting Posts