Vbscript VBS在文本文件中拆分逗号分隔行
我不是vbs脚本编写人员,但需要解决文本文件中逗号分隔行的问题,我想将该行拆分为单独的文件,我可以将该行拆分为多个文件,但所有文件都包含所有拆分行,因此我不知何故出错了 当前脚本是这样的Vbscript VBS在文本文件中拆分逗号分隔行,vbscript,split,Vbscript,Split,我不是vbs脚本编写人员,但需要解决文本文件中逗号分隔行的问题,我想将该行拆分为单独的文件,我可以将该行拆分为多个文件,但所有文件都包含所有拆分行,因此我不知何故出错了 当前脚本是这样的 Set fso = CreateObject("Scripting.FileSystemObject") set src = fso.OpenTextFile("c:\Temp\Read.txt",1) lines = split(src.readall, ",") for i = 1 to ubound(l
Set fso = CreateObject("Scripting.FileSystemObject")
set src = fso.OpenTextFile("c:\Temp\Read.txt",1)
lines = split(src.readall, ",")
for i = 1 to ubound(lines)
set dst = fso.CreateTextFile( i & ".txt", true)
dst.writeline lines(0)
dst.writeline lines(1)
dst.writeline lines(2)
dst.writeline lines(3)
dst.writeline lines(4)
dst.writeline lines(5)
dst.close
next
Read.txt看起来像这样
c:\Folder1\.\\, D:\Folder1\.\\, D:\Folder2\.\\
文本行有时包含一个文件夹,有时是6或7个文件夹,因此该行包含1到10个commadelimited FolderPath中的任意数字。文件中只有一行
我希望每次分割的输出都是一个新的文本文件,并且空格被删除,作为结尾“\\”(删除最后三个字符)
我知道如何在一个单独的vbs中完成它的一部分,但不知道如何将它包含在与上面相同的脚本中。下面是我希望得到的最终输出
1.txt包含
2.txt包含
3.txt包含
等等
Dim aParts : aParts = Split(goFS.OpenTextFile("..\testdata\22879679\22879679.txt").ReadLine(), ", ")
WScript.Echo Join(aParts)
Dim nF
For nF = 0 To UBound(aParts)
goFS.CreateTextFile("..\testdata\22879679\" & (NF + 1) &".txt").WriteLine aParts(nF)
Next
For nF = 0 To UBound(aParts)
WScript.Echo qq(goFS.OpenTextFile("..\testdata\22879679\" & (NF + 1) &".txt").ReadAll())
Next
输出:
c:\Folder1\.\\ D:\Folder1\.\\ D:\Folder2\.\\
"c:\Folder1\.\\
"
"D:\Folder1\.\\
"
"D:\Folder2\.\\
"
只想分享最后的脚本
Option Explicit
Dim goFS : Set goFS = CreateObject( "Scripting.FileSystemObject" )
Dim aParts : aParts = split(Replace(goFS.OpenTextFile("..\folder\read.txt").ReadLine(), ".\\", ""), ", ")
Dim nF
For nF = 0 To UBound(aParts)
goFS.CreateTextFile("..\folder\" & (NF + 1) &".txt").WriteLine aParts(nF)
Next
For nF = 0 To UBound(aParts)
WScript.Echo (goFS.OpenTextFile("..\folder\" & (NF + 1) &".txt").ReadAll())
Next
看起来不错,埃克哈德。不过我相信他不想把文件写进去。由于。\\n看起来没用(而且无论如何都需要删除),我们在创建初始数组时也可以这样做:
aParts=Split(Replace(goFS.OpenTextFile(“..\testdata\22879679\22879679.txt”).ReadLine(),“\\”,“),”,“,”
,然后我们就不用担心它们了。我得到了goFS,但qq对我来说毫无意义,我删除了qq并按预期运行脚本。反正我想知道下qq的目的。谢谢你们的帮助,伙计们!看起来Ekkehard只是用它在输出周围加了引号(qq=双引号)。请通过解释代码如何解决问题来详细说明您的答案。提供一块没有解释的代码通常是没有帮助的。
Dim aParts : aParts = Split(goFS.OpenTextFile("..\testdata\22879679\22879679.txt").ReadLine(), ", ")
WScript.Echo Join(aParts)
Dim nF
For nF = 0 To UBound(aParts)
goFS.CreateTextFile("..\testdata\22879679\" & (NF + 1) &".txt").WriteLine aParts(nF)
Next
For nF = 0 To UBound(aParts)
WScript.Echo qq(goFS.OpenTextFile("..\testdata\22879679\" & (NF + 1) &".txt").ReadAll())
Next
c:\Folder1\.\\ D:\Folder1\.\\ D:\Folder2\.\\
"c:\Folder1\.\\
"
"D:\Folder1\.\\
"
"D:\Folder2\.\\
"
Option Explicit
Dim goFS : Set goFS = CreateObject( "Scripting.FileSystemObject" )
Dim aParts : aParts = split(Replace(goFS.OpenTextFile("..\folder\read.txt").ReadLine(), ".\\", ""), ", ")
Dim nF
For nF = 0 To UBound(aParts)
goFS.CreateTextFile("..\folder\" & (NF + 1) &".txt").WriteLine aParts(nF)
Next
For nF = 0 To UBound(aParts)
WScript.Echo (goFS.OpenTextFile("..\folder\" & (NF + 1) &".txt").ReadAll())
Next
varTime=FormatDateTime (Now, 3)
varMode=Right(varTime, 2)
varNewLength=Len(varTime)-3
varTime=Left(varTime, varNewLength)
TestString = varTime
TestArray = Split(varTime , ":")
strHR=TestArray(0)
print strHR
strMN=TestArray(1)
print strMN
strSC=TestArray(2)
print strSC
If varMode="PM" Then
strHR=strHR+12
End If
varTime=strHR&":"&strMN&":"&strSC