(テクニカル系)Tektronixのオシロの波形CSVデータをバッチファイルで自動処理しよう〜


フォルダを作成し、一旦全ての波形データをそのフォルダにコピーしてから始めます。
複数のフォルダにまたがっても、make_all.batの引数を編集してやれば構いません。
まずフォルダに対してmakeを1回だけしてからmake_allをそのフォルダに対して実行して下さい。


何故か下の方にゴミが大量に出るので、完成したcsvファイルの下の方を
Excelで開いて手動で消して下さい;;


ちなみに、このバッチファイルは星野香奈氏作の「CSV Tools」及び「文字列置換」を
使用します。別途ダウンロードして用意して下さい(Cソース付きのフリーソフトです)。


[make.bat]使用方法 : make フォルダ名
@echo off
cd %1
echo LF→CRLF 置換中...
for %%i in (f???????.csv) do ..\chikan %%i ,/n ,/r/n
echo ダミーデータ入力中(1/3)...
for %%i in (f???????.csv) do ..\chikan %%i ,, ,DUMMY,
echo ダミーデータ入力中(2/3)...
for %%i in (f???????.csv) do ..\chikan %%i ,, ,DUMMY,
echo ダミーデータ入力中(3/3)...
for %%i in (f???????.csv) do ..\chikan %%i ,/r/n, ,/r/nDUMMY,
md 5line
echo 5行目を抽出中...
for %%i in (f???????.csv) do ..\csvpick 4 <%%i >5line\%%i
cd ..
echo 終了しました。


[make_all.bat]
@echo off
echo Now initializing...
rem ここに作りたいファイル名を入れて下さい。↓
set filename_csv=result.csv
if not exist dummy.csv dir | find "....." > dummy.csv
if exist tmp2.old del tmp2.old
if exist tmp2.csv del tmp2.csv
if exist tmp.csv del tmp.csv
if exist %filename_csv% del %filename_csv%
copy dummy.csv tmp.csv

rem ここからは作りたい表に合わせて引数を書き換えること。
rem call make[1-3] CHx aaaa bb cc dd
rem make1〜3は、波形の番号の桁数に合わせて選ぶ。
rem aaaaは波形データが入っているフォルダ名を指定する。
rem CHxは、CH1〜CH4,MTHから欲しい波形を選んで入れます。
rem bbは波形の開始番号、ccは波形の終了番号、ddは何個おきに波形を取るかです。
call make1 39D_3 CH1 5 9 1
call make2 39D_3 CH1 10 21 1
call make1 39D_4 CH1 1 9 1
call make2 39D_4 CH1 10 21 1
call make1 39D_5 CH1 5 9 1
call make1 39D_3 CH2 5 9 1
call make2 39D_3 CH2 10 21 1
call make1 39D_4 CH2 1 9 1
call make2 39D_4 CH2 10 21 1
call make1 39D_5 CH2 5 9 1
call make1 39D_3 CH3 5 9 1
call make2 39D_3 CH3 10 21 1
call make1 39D_4 CH3 1 9 1
call make2 39D_4 CH3 10 21 1
call make1 39D_5 CH3 5 9 1
call make1 39D_3 CH4 5 9 1
call make2 39D_3 CH4 10 21 1
call make1 39D_4 CH4 1 9 1
call make2 39D_4 CH4 10 21 1
call make1 39D_5 CH4 5 9 1

echo Now finishing...
if exist tmp2.old del tmp2.old
if exist tmp2.csv del tmp2.csv
if exist dummy.csv del dummy.csv
ren tmp.csv %filename_csv%
chikan %filename_csv% ,, ,
echo Finished.


[make1.bat]
copy tmp.csv tmp2.csv >nul
for /L %%j in (%3,%5,%4) do (csvcat tmp2.csv %1\5line\F000%%j%2.CSV >tmp.csv & if exist tmp2.csv del tmp2.csv & copy tmp.csv tmp2.csv >nul & echo Now making %2-%1-%%j... )


[make2.bat]
copy tmp.csv tmp2.csv >nul
for /L %%j in (%3,%5,%4) do (csvcat tmp2.csv %1\5line\F00%%j%2.CSV >tmp.csv & if exist tmp2.csv del tmp2.csv & copy tmp.csv tmp2.csv >nul & echo Now making %2-%1-%%j... )


[make3.bat]
copy tmp.csv tmp2.csv >nul
for /L %%j in (%3,%5,%4) do (csvcat tmp2.csv %1\5line\F0%%j%2.CSV >tmp.csv & if exist tmp2.csv del tmp2.csv & copy tmp.csv tmp2.csv >nul & echo Now making %2-%1-%%j... )