用bat 命令 修改sql文件中的数据库名字 新的名字通过读取配置文件中的字段获取

在批处理脚本中,如果新数据库名存储在配置文件(比如config.ini)中的某个字段内,可以按照以下步骤进行:

假设你的配置文件内容如下:

Ini
[Database]
newName=myNewDB

要读取这个值并用于替换.sql文件中的旧数据库名,请使用以下批处理脚本:

Batch
@echo off
setlocal enabledelayedexpansion

:: 读取配置文件中的新数据库名
for /f "tokens=2 delims==" %%a in ('findstr /b "newName=" config.ini') do (
    set "NEW_DB_NAME=%%a"
)

:: 遍历所有.sql文件并替换数据库名
for /r %%i in (*.sql) do (
    echo Processing file: %%i
    type "%%i" > "temp.tmp"
    for /f "delims=" %%j in ('type "temp.tmp"') do (
        set "line=%%j"
        set "line=!line:oldDBName=%NEW_DB_NAME%!"
        echo.!line! >> "new_%%i"
    )
    del "%%i"
    ren "new_%%i" "%%i"
)

del "temp.tmp"
echo All .sql files processed.
endlocal

在这个脚本中,首先通过findstrfor /f命令组合读取配置文件的特定行,并提取出新数据库名。然后,遍历所有.sql文件执行替换操作。

同样要注意的是,此方法对于简单的SQL语句中的文本替换有效,但对于复杂的SQL结构可能需要更精细的解析逻辑。同时,请确保备份重要文件并在实际环境中测试脚本的安全性和有效性。

你可能感兴趣的:(数据库,sql)