希望这是一个简单的答案。基本上我希望能够获取我们将称为 FileSample.txt 的多行文本文件的内容。它可能包含以下内容
Some text sample1 : Extra1
Some text sample2 : Extra2
Some text sample3 : Extra3
Some text sample4 : Extra4
基本上将其输入到一个 2 列的 csv 中,我们将其称为 Output.csv。第一列应该是文件名,第二列应该是文本文件的内容(包括硬回车)。所以基本上csv应该包含这个......
FileName,Contents
FileSample.txt,"Some text sample1 : Extra1 Some text sample2 : Extra2 Some text sample3 : Extra3 Some text sample4 : Extra4"
我为这里的完全混乱和完全新手脚本技能道歉。我真的很想完成这件事,所以我用 powershell 做了一个解决方案。
$Content = Get-Content .\FileSample.txt
$FileName = Get-ChildItem .\FileSample.txt
New-Object PSObject -Property @{
FileName = $FileName.Name
Content = "$Content"
} | Export-Csv .\Output.csv -NoTypeInformation
尽管我不想偏离通过批处理文件完成这项工作的最初要求,但我确实设法从下面的这个 vbscript 中获得了相同的结果,而不必求助于使用从 ExifTool 保存的文件。
Dim WshShell, oExec
Set WshShell = WScript.CreateObject("WScript.Shell")
Set oExec = WshShell.Exec("%comspec% /c ""D:\EXIFTOOL\exiftool.exe"" test.jpg")
x1 = oExec.StdOut.ReadAll
x2 = Replace(x1, chr(34), chr(34) & chr(34))
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objLogFile = objFSO.CreateTextFile("D:\EXIFTOOL\Output.csv", 1, False)
objLogFile.Write "Filename,"
objLogFile.Write "ExifData"
objLogFile.Writeline
objLogFile.Write chr(34) & "sample6.csv" & chr(34) & ","
objLogFile.Write chr(34) & x2 & chr(34)
objLogFile.Writeline
objLogFile.Close