也许你可以跳过单引号\
如O\'brian
如果是sqlcmd未能插入。
如果包含单引号的文件不用于定界值,则可以替换中间文件中的所有匹配项。
(
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'
)
输出:
'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'
作为最后的手段,你总是可以选择与字符,你在该行替换:echo !i:'=\'!
提供更多的代码,请;所有'%%'变量从哪里来? – aschipfl
我使用:以下字符串替换和它不工作: 组%% B = %%% B: '=' '% \t \t集%%一个= %%%一个:'= '' % \t \t set %% f = %%% f:'=''% \t \t set %% c = %%% c:'=''% \t \t set %% d = %%% d:'='' % –
您不能将字符串替换语法'%VAR:str = rpl%'应用于'for'变量,您需要一个临时“正常”变量,但由于'for' ...需要延迟扩展并插入一个在'do'和'('... – aschipfl