通过搜索此网站并学习 Windows 批处理脚本这种荒谬的语言,我取得了很大进展,但坦率地说,我陷入了困境。下面的示例来自我们实验室的旧辐射计模块,该模块定期将其数据记录为 TXT 文件。我试图将它们解析为正确的 JSON。这个想法是有一个 .bat 文件可以定期运行,将某个文件夹中的所有 TXT 日志更改为 JSON 格式。
我遇到麻烦的一些原因是:长标题、标题中不相关的“PRODUCES”或“MFRSR”、标题中不相关的单位、值之间不一致的分隔符、奇怪的“*5”空值(在这种情况下可能只是零)以及数据包含标题以外的 3 列(前 3 个值实际上是时间的旧电子表格符号)。
*。TXT:
PRODUCES
MFRSR Detector Temp , degC
HTR V , V
MFRSR Thermopile Total , W/m^2
MFRSR 414.0nm Total , (W/m^2)/nm
MFRSR 496.6nm Total , (W/m^2)/nm
MFRSR 613.0nm Total , (W/m^2)/nm
MFRSR 670.9nm Total , (W/m^2)/nm
MFRSR 869.3nm Total , (W/m^2)/nm
MFRSR 937.6nm Total , (W/m^2)/nm
MFRSR Thermopile Diffuse , W/m^2
MFRSR 414.0nm Diffuse , (W/m^2)/nm
MFRSR 496.6nm Diffuse , (W/m^2)/nm
MFRSR 613.0nm Diffuse , (W/m^2)/nm
MFRSR 670.9nm Diffuse , (W/m^2)/nm
MFRSR 869.3nm Diffuse , (W/m^2)/nm
MFRSR 937.6nm Diffuse , (W/m^2)/nm
MFRSR Thermopile DirNorm , W/m^2
MFRSR 414.0nm DirNorm , (W/m^2)/nm
MFRSR 496.6nm DirNorm , (W/m^2)/nm
MFRSR 613.0nm DirNorm , (W/m^2)/nm
MFRSR 670.9nm DirNorm , (W/m^2)/nm
MFRSR 869.3nm DirNorm , (W/m^2)/nm
MFRSR 937.6nm DirNorm , (W/m^2)/nm
42099 0.29236 -0.55603 45.20 7.4819 *5 *5 *5 *5 *5 *5 *5 *5 *5 *5 *5 *5 *5 *5 *5 *5 *5 *5 *5 *5 *5
42099 0.57222 0.01180 45.20 7.8285 0.9378 0.0086 0.0086 0.0032 0.0040 0.0018 0.0005 0.9473 0.0093 0.0086 0.0032 0.0040 0.0018 0.0005 -0.8090 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
42099 0.57291 0.01415 45.20 7.8382 1.3587 0.0093 0.0086 0.0032 0.0040 0.0018 0.0005 1.3725 0.0093 0.0086 0.0032 0.0040 0.0023 0.0005 -0.9770 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
42099 0.57361 0.01656 45.20 7.8998 2.6372 0.0099 0.0100 0.0032 0.0040 0.0023 0.0005 2.6641 0.0099 0.0100 0.0032 0.0040 0.0023 0.0005 -1.6210 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
*.json:
PRODUCES1 = {
Id: 42099029236
X: -0.55603
DetectorTemp: 45.20,
HTRV: 7.4819,
ThermopileTotal: 0.0000,
414Total: 0.0000,
496Total: 0.0000,
613Total: 0.0000,
670Total: 0.0000,
869Total: 0.0000,
937Total: 0.0000,
ThermopileDiffuse: 0.0000,
414Diffuse: 0.0000,
496Diffuse: 0.0000,
613Diffuse: 0.0000,
670Diffuse: 0.0000,
869Diffuse: 0.0000,
937Diffuse: 0.0000,
ThermopileDirNorm: 0.0000,
414DirNorm: 0.0000,
496DirNorm: 0.0000,
613DirNorm: 0.0000,
670DirNorm: 0.0000,
869DirNorm: 0.0000,
937DirNorm: 0.0000
};
PRODUCES2 = {
Id: 42099057222
X: -0.55603
DetectorTemp: 45.20,
HTRV: 7.8285,
ThermopileTotal: 0.9378,
414Total: 0.0086,
496Total: 0.0086,
613Total: 0.0032,
670Total: 0.0040,
869Total: 0.0018,
937Total: 0.0005,
ThermopileDiffuse: 0.9473,
414Diffuse: 0.0093,
496Diffuse: 0.0086,
613Diffuse: 0.0032,
670Diffuse: 0.0040,
869Diffuse: 0.0018,
937Diffuse: 0.0005,
ThermopileDirNorm: -0.8090,
414DirNorm: 0.0000,
496DirNorm: 0.0000,
613DirNorm: 0.0000,
670DirNorm: 0.0000,
869DirNorm: 0.0000,
937DirNorm: 0.0000
};
这里是否有人了解批处理并可以帮助我开始?
答案1
powershell V4版本:
gc .\data.csv | ConvertTo-Json | sc .\data.json
powershell V4,V3:
powershell V2版本: