Replace first existence of any character using DOS

Hi

I want to replace first existence of the character
code I m using is

 
for /f "tokens=* delims= " %%a in (test2.csv) do (
set str=%%a
echo !str::=,! >> test3.csv
)

However it is replacing all the ':' whereas I want to replace first ':' by ',' and leave rest of the ':' as it is.

Pls help.
Suggestions are welcome.