找到MySQL和Cassandra的正确PATH

时间:2015-05-04 20:11:38

标签: mysql sql-server batch-file cassandra

我有一个用于db备份的.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文件应该在执行脚本之前找到正确的路径和版本。

知道如何做到这一点吗?

2 个答案:

答案 0 :(得分:0)

如果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%

这应该回应备份目录,如果它的设置。

答案 1 :(得分:0)

我通过这样做解决了这个问题:

  

sc \%HOSTIP%启动RemoteRegistry
  REG QUERY \\%HOSTIP%\ HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Installer \ Folders / s / f" DataStax" > search.txt
  findstr" ty \ data" search.txt> testcase.txt
  sc \ HOSTIP停止RemoteRegistry