转化;分隔CSV到制表符分隔CSV

转化;分隔CSV到制表符分隔CSV,csv,vbscript,Csv,Vbscript,我想转换-分隔CSV到制表符分隔CSV。我试过一些选择。我可以将其转换为制表符分隔的文本文件,但我需要制表符分隔的CSV文件作为输出。我需要一个VBScript代码 我已经尝试了以下代码,但转换为制表符分隔的文本文件,但我想要制表符分隔的CSV文件 Dim objFSO : Set objFSO = CreateObject("Scripting.FileSystemObject") Dim objFile : Set objFile = objFSO.OpenTextFile("\\vss22

我想转换
-分隔CSV到制表符分隔CSV。我试过一些选择。我可以将其转换为制表符分隔的文本文件,但我需要制表符分隔的CSV文件作为输出。我需要一个VBScript代码

我已经尝试了以下代码,但转换为制表符分隔的文本文件,但我想要制表符分隔的CSV文件

Dim objFSO : Set objFSO = CreateObject("Scripting.FileSystemObject")
Dim objFile : Set objFile = objFSO.OpenTextFile("\\vss22\Export\List\Export_File.csv")
Dim objOut : Set objOut = objFSO.CreateTextFile("\\vss22\Export\List\Export_File.txt")

arrData = objFile.ReadAll
objOut.Write Replace(Replace(arrData, ";",vbTab), chr(34), "")
objFile.Close
objOut.Close

编辑:这是我的输入文件示例。我使用了@ansgar提供的代码,但是分号(
)不能替换为tab

PIM ID;Parent Product;Maintenance;MCH 1;10001;10001;ABC 2;20001;20001;ABC 3;30001;30001;ABC
只需将修改后的文本写回原始文件(读取文件后,必须先关闭文件,然后才能打开文件进行写入):


只需将修改后的文本写回原始文件(读取文件后,必须先关闭文件,然后才能打开文件进行写入):


…CreateTextFile(…Export_File.txt”)
.Hmmm-为什么这会创建一个
.txt
而不是
.csv
?@Stephan即使我将Export_File.txt更改为Export_File.txt,它仍然会创建一个以制表符分隔的文本文件请显示修改文件时使用的实际代码。我的代码不太可能删除一些分号,但保留其他分号。此外,我刚刚用您的示例数据测试了我的代码,代码完全按照它应该执行的操作。还要检查输入文件的编码。
…CreateTextFile(…Export_file.txt”)
。Hmmm-为什么这会创建一个
.txt
而不是
.csv
?@Stephan即使我将Export_File.txt更改为Export_File.txt,它仍然会创建一个以制表符分隔的文本文件请显示您用于修改文件的实际代码。我的代码不太可能删除一些分号,但保留其他分号。此外,我刚刚用您的示例数据测试了我的代码,代码完全完成了它应该做的事情。还要检查输入文件的编码。对不起,它不起作用。分号(;)已被删除,但所有列中的数据彼此相邻,没有任何空格/制表符。@adit我测试了我发布的代码,效果很好。请提供证据。我已经提供了代码,输入文件样本和输出结果,我得到。请看一看,让我知道我遗漏了什么。@adit你检查过文件的编码了吗?那是我唯一能想到的。请使用十六进制编辑器(例如)打开它,并发布输入文件前两行的十六进制表示。抱歉,它不起作用。分号(;)已被删除,但所有列中的数据彼此相邻,没有任何空格/制表符。@adit我测试了我发布的代码,效果很好。请提供证据。我已经提供了代码,输入文件样本和输出结果,我得到。请看一看,让我知道我遗漏了什么。@adit你检查过文件的编码了吗?那是我唯一能想到的。请使用十六进制编辑器(例如)打开它,并发布输入文件前两行的十六进制表示。 PIM ID;Parent Product;Maintenance;MCH 11000110001ABC 22000120001ABC 33000130001ABC
file = "\\vwq2702\HeilerExport\TaskList\Archive\List Values.csv"

Set fso = CreateObject("Scripting.FileSystemObject")

txt = fso.OpenTextFile(file).ReadAll
fso.OpenTextFile(file, 2).Write Replace(Replace(txt, ";", vbTab), Chr(34), "")
file = "\\vss22\Export\List\Export_File.csv"

Set fso = CreateObject("Scripting.FileSystemObject")

txt = fso.OpenTextFile(file).ReadAll
fso.OpenTextFile(file, 2).Write Replace(Replace(txt, ";", vbTab), Chr(34), "")