@echo off
setlocal enabledelayedexpansion
set "target_db=dba"
set "source_db=dbb"
set "sql_file=MigrateSQL.sql"
> %sql_file% (
for /f "delims=" %%i in (tables.txt) do (
echo INSERT INTO !target_db!.%%i SELECT * FROM !source_db!.%%i;
)
)
在Windows批处理脚本中,for /f "delims=" %%i in (tables.txt) do
这一行的作用是读取名为"tables.txt"的文件,并将每一行的内容赋值给变量%%i
。
其中,delims=
表示分隔符,它用于指定如何分割文件中的文本。在这个例子中,delims=
后面没有指定任何字符,这意味着默认情况下,文件的每一行都会被当作一个整体来处理,即整行内容会被当作一个单独的元素赋值给变量%%i
。
如果delims=
后面有指定的字符,那么这些字符将作为分隔符,用于分割文件中的文本。例如,如果delims=,
,则文件中的每一行将被逗号分隔,每个分隔后的部分都会被视为一个独立的元素,依次赋值给变量%%i
。