ちょっとした問題が発生しました。.batファイル.txtを1つのファイルにマージします(filenameを含みますが、 ';'で区切られます)。
私が働いている会社で使用されている監視ソフトウェア(製造ホール内のロボットに使用)は、15分ごとにログファイル(.sdat)を生成します。ログファイルの内容は次のようになります。
構文:Time;machine;status
13:53:23;KP85;ms:9999
13:53:49;KP85;ms:3
13:54:54;KP85;ms:4
14:06:04;KP85;ms:9999
13:51:38;Robot1;ms:9999
構文:Filename:Time;Machine;Status
等...
私はこのようなそれぞれの新しい行の開始時にファイル名を含め、一つの大きなファイルにすべてのログファイルを連結するために管理してきました
01-03-2016-00-20.sdat:0:07:40;KP65;ms:3
01-03-2016-00-20.sdat:0:09:09;KP65;ms:4
01-03-2016-00-20.sdat:0:09:11;KP65;ms:3
01-03-2016-00-20.sdat:0:09:13;KP65;ms:4
など。
理由があります。ただし、これをSQL管理スタジオにインポートすると、ファイル名と最初の列(時刻)が ':'でなく ':'で区切られているため、4ではなく3つの列が認識されます。私はSQLクエリでそれを解決しようとしましたが、LEFT()とRIGHT()で日付と時刻を分けていますが、時刻が9時59分59秒から10時00分に切り替わるときの時刻フィールドのフォーマットは、時間フィールドの余分な文字を作成します(したがって、列のデータは ':9:59:59'のようになりますが、これは有効な時間フィールドではありません)。おそらくSQLで行うこともできますが、このような小さな問題に対してSQLコードを複雑にするのが好きなようです。
この時点で、私はこの問題を早期に解決する方がよいと考えました。大きなファイルを生成するバッチファイル内では、Management Studioは3つの列の代わりに4つを認識します。これは私の.batファイルは、現時点ではどのように見えるかです:
@echo off findstr "^" *.sdat >output.txt
何私はこの権利を取得するためにしなければならないのですか?事前に
おかげで、
マイクSohns
空行は関係ありませんが、%% i – Mike
が見つからないため出力が生成されません。 '%% f'(編集済み) – Stephan
ありがとう、ありがとう。私は仕事に戻ったときに月曜日にそれを試してみましょう! – Mike