mysql - 找到 MySQL 和 Cassandra 的正确路径

标签 mysql sql-server batch-file cassandra

我有一个用于数据库备份的.BAT文件,该文件正在设置sql server和cassandra的路径,如果用户不将这些应用程序安装在备份的同一路径中失败。

实际上.BAT文件设置路径如下:

SET "CASSANDRA_DATA_PATH=C:\Program Files\DataStax Community\data\data"
SET "MSSQL_BACK_PATH=C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\Backup"

因此,如果用户拥有其他版本的 SQL Server,备份也将不起作用。

相反,.BAT 文件应该在执行脚本之前找到正确的路径和版本。

知道如何做到这一点吗?

最佳答案

如果 Casandra 不是某种可移植数据库,则在安装后,它应该将有关自身的信息存储在注册表中 HKEY_LOCAL_MACHINE\SOFTWARE\ 下的某个位置。我从未使用过 casandra,因此您需要自己找到数据的存储位置。至于 MS SQL:

    @echo off 


    for /f "delims=" %%a in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server Local DB\Installed Versions"') do set "ver=%%~nxa"
    rem for /f "delims=" %%a in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server Local DB\Installed Versions"') do set "ver=%%~nxa"
    echo --%ver%--
    rem set "ver=%ver:.=%"
    for /f "skip=2 tokens=1,2,* delims= " %%a in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server Local DB\Installed Versions\%ver%" /v "ParentInstance"') do set "pi=%%~nxc"
    rem echo --%pi%--
    for /f "skip=2 tokens=1,2,* delims= " %%a in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\%pi%\MSSQLServer" /v "BackupDirectory"') do set dbp=%%~nc


    echo %dbp%

这应该回显备份目录(如果已设置)。

关于mysql - 找到 MySQL 和 Cassandra 的正确路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30039111/

相关文章:

mysql - SQL 查询 FROM 变量表

mysql - sql中两个字符串的比较

python - 在视频 ffmpeg 批处理脚本中显示文件名

java - 运行批处理文件时当前目录无效

PostgreSQL - 批处理+脚本+变量

php - 将多个条目插入多个表php pdo

php - 比较日期是否已过

sql - 使用SQL Server 2008自动生成文本文件

sql-server - 将 MSSQL 数据库备份恢复到新数据库

sql - 在 SQL Server 的更新语句中使用随机记录更新表?