В пакетном режиме вы обычно обрабатываете csv с for /f
и
разделяется запятой, но for /f
рассматривает соседние разделители только как один.
Поэтому я предлагаю использовать язык сценариев с регулярными выражениями, такими как PowerShell.
(Get-Content .\SO_56900009.csv) -replace '"ABS *1"','1' -replace '(?<=_\d+)_\d'|Set-Content '.\New.csv'
> Get-Content .\New.csv
"CAM, file name",Length ,Width,Thickness,Material,Count,Edge Left,Edge Right,Edge Top,Edge Bottom,Barcode,Grain
,800.00,418.00,1650.00,,1,,,,,,
DOOR_LH_13,395.50,778.00,18.00,white,1,1,1,1,1,279162,
DOOR_RH_14,395.50,778.00,18.00,white,1,1,1,1,1,279164,
bottom_front_5,764.00,100.00,18.00,white,1,1,,,1,279148,
top_4,764.00,400.00,18.00,white,1,1,,1,1,279146,
left_side_1,1650.00,400.00,18.00,white,1,1,1,1,1,279140,
right_side_2,1650.00,400.00,18.00,white,1,1,1,1,1,279142,
Divider_8,374.00,352.00,18.00,white,1,,,1,,279154,
Shelf_11,764.00,352.00,18.00,white,1,,,1,,279158,
Shelf_12,764.00,352.00,18.00,white,1,,,1,,279160,
Bottom_3,764.00,382.00,18.00,white,1,,,1,,279144,
shelf_6,764.00,382.00,18.00,white,1,,,1,,279150,
shelf_10,764.00,382.00,18.00,white,1,,,1,,279156,
back_7,1632.00,764.00,18.00,white,1,,,,,279152,
Чтобы быть в теме, вы можете поместить этот лайнер в пакетный файл:
powershell -NoP -C "(Get-Content .\SO_56900009.csv) -replace '\"ABS *1\"','1' -replace '(?<=_\d+)_\d'|Set-Content '.\New.csv'"