machinemonitoring-softwareによって生成されたファイルをマージする際に問題があります。ソフトウェアは、特定のマシンが与えられた時間であるものの状態を示してファイルを生成し、同様に、以下に示す:ファイル名の一部のみを含む大量のファイルをマージする
フォーマット:Time;Machine;Status
23:40:52;KP66;ms:4
23:39:54;KP86;ms:4
23:49:24;KP86;ms:9999
23:38:17;Wasmachine1;ms:4
23:43:36;Wasmachine1;ms:9999
23:41:29;Meten1;ms:4
15分ごとに、新しいファイルが、このデータを用いて生成されます。各ファイルのファイル名には、日付と生成時刻が表示されます(例:29-02-2016-23-50.sdat
.sdatは拡張子で、メモ帳で開くことができます)。
これらのファイルをビジュアライゼーションソフトウェアに正しく入力して視覚化できるようにするには、特定のマシンで特定のステータスが記録された日付と時刻が必要です。日付はファイル名に含まれ、時間はファイル自体に含まれます。
私はすべてのファイルを1つのテキストファイルと2に.sdat拡張子を削除します。1.マージのことができるようにするために、2つの別々のスクリプトを作成しましたので、データは次のように提示されています
29-02-2016-05-20 5:05:37;KP85;ms:3
29-02-2016-05-20 5:05:39;KP85;ms:9999
29-02-2016-05-20 5:06:04;KP85;ms:3
29-02-2016-05-20 5:07:51;KP86;ms:4
29-02-2016-05-20 5:17:58;KP86;ms:9999
29-02-2016-05-20 5:19:13;KP86;ms:4
問題は、 "-05-20"の部分(日付の後)がまだそこにあるため、日付として認識できないため、visでdatetimeフィールドを作成できません。ソフトウェア。 "05-20"はファイルごとに変わります。
29-02-2016 5:05:37;KP85;ms:3
29-02-2016 5:05:39;KP85;ms:9999
29-02-2016 5:06:04;KP85;ms:3
29-02-2016 5:07:51;KP86;ms:4
これらは私がこれまで使用してきたスクリプトです。
@echo off
(for %%f in (*.sdat) do (
for /f "tokens=1 delims=" %%a in (%%f) do @echo %%f %%a
))>Machinelogs.txt
そして、それぞれの行に「.sdat」の部分を削除するVBSスクリプト::私は「
Const ForReading = 1
Const ForWriting = 2
Const FileIn = "Machinelogs.txt"
Const FileOut = "Machinelogs.txt"
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile(FileIn, ForReading)
strText = objFile.ReadAll
objFile.Close
strNewText = Replace(strText, ".sdat", "")
Set objFile = objFSO.OpenTextFile(FileOut, ForWriting)
objFile.WriteLine strNewText
objFile.Close
バッチファイルには、各行の先頭に完全なファイル名を含むすべてのファイルをマージします別のバッチファイルを使用して、両方のスクリプトを順に呼び出しました。私が正しく理解していれば
は、それが動作します。ありがとうと私はスクリプトを正しく作成することができません:p。 – Mike