Из вашего изображения Excel вы также, похоже, испытываете проблему с спецификацией (меткой порядка байтов) в используемом вами редакторе.
Старый пост, на который вы ссылаетесь, отличается тем, что все поля указаны в кавычках.
Чтобы разделить CSV по запятым, используйте запятую в качестве разделителя в for / f (при условии, что запятых нет внутри данных поля).
Для обмена текстом,использовать замену строки (что требует копирования в обычную (не для мета) переменную внутри блока кода, что, в свою очередь, требует замедленного расширения).
Этот пакет:
:: Q:\Test\2019\01\22\SO_54312302.cmd
@echo off
setlocal enabledelayedexpansion
set inputCSV=TestCSV.csv
set outputCSV=TestCSV2.csv
(for /f "tokens=1-4* delims=," %%a IN (%inputCSV%) DO (
set "col4=%%d"
set "col4=!col4:foo=bar!"
Set "col4=!col4:test=abc!"
echo %%a,%%b,%%c,!col4!,%%e
))>%outputCSV%
дает следующие выходные данные:
> type TestCSV2.csv
ID,Name,Date,Field1,Test Data Space Check
1010101,Test 1,01/27/2001 10:00:00 PM,abc,Test Data Space Check
2020202,Test 2,01/27/2001 10:00:00 PM,abc,Test Data Space Check
3030303,Test 3,01/27/2001 10:00:00 PM,abc,Test Data Space Check
4040404,Test 4,01/27/2001 10:00:00 PM,abc,Test Data Space Check
5050505,Test 5,01/27/2001 10:00:00 PM,abc,Test Data Space Check
При импорте в Excxel используйте запятую в качестве разделителя.