うまくいけば、これは簡単な答えです。基本的に、FileSample.txt と呼ぶ複数行のテキスト ファイルの内容を取得できるようにしたいと考えています。の行に沿って何かが含まれている可能性があります
Some text sample1 : Extra1
Some text sample2 : Extra2
Some text sample3 : Extra3
Some text sample4 : Extra4
基本的に、Output.csv と呼ぶ 2 列の csv に入力します。最初の列はファイル名で、2 番目の列はテキスト ファイルの内容 (ハード リターンを含む) である必要があります。したがって、本質的に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
バッチ ファイルを使用してこれを行うという最初の要求から逸脱したくなかったのと同じくらい、ExifTool から保存されたファイルを使用することに頼ることなく、以下の vbscript から同じ結果を得ることができました。
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