Perhaps you could escape single quote with \
like O\'brian
if it's sqlcmd failing to insert.
If the file containing single quotes that does not use for delimitation of values, then you could replace all occurrences in an intermediate file.
(
echo O'Brian1a, O'Brian1b, O'Brian1c, O'Brian1d, O'Brian1e, O'Brian1f
echo O'Brian2a, O'Brian2b, O'Brian2c, O'Brian2d, O'Brian2e, O'Brian2f
echo O'Brian3a, O'Brian3b, O'Brian3c, O'Brian3d, O'Brian3e, O'Brian3f
)>%tmp%\myfile.tmp
(
for /f "delims=" %%i in (%tmp%\myfile.tmp) do (
set "i=%%i"
setlocal enabledelayedexpansion
echo !i:'=\'!
)
)>%tmp%\int-myfile.tmp
for /f "tokens=1-6 delims=, " %%a in (%tmp%\int-myfile.tmp) do (
echo '%%a','%%b','%%c','%%d','%%e','%%f'
)
output:
'O\'Brian1a','O\'Brian1b','O\'Brian1c','O\'Brian1d','O\'Brian1e','O\'Brian1f'
'O\'Brian2a','O\'Brian2b','O\'Brian2c','O\'Brian2d','O\'Brian2e','O\'Brian2f'
'O\'Brian3a','O\'Brian3b','O\'Brian3c','O\'Brian3d','O\'Brian3e','O\'Brian3f'
As a last resort you can always choose with which character you replace in the line: echo !i:'=\'!