我有一个用于数据库备份的.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/