NSIS导入数据库

时间:2015-04-24 10:55:34

标签: command-line nsis

我想使用NSIS开发一个安装程序,它可以将.sql文件导入MySql WorkBench 6.2

我使用命令

 SetOutPath "$INSTDIR"
  SetOverwrite try  
File "${PROJECT_PATH}\IVMSClientEnterprise\ivms.sql"
 nsExec::Exec 'C:\Program Files\MySQL\MySQL Workbench 6.2 CE\mysql -u root -e "drop database ivms_db_clienta"'
  nsExec::Exec 'C:\Program Files\MySQL\MySQL Workbench 6.2 CE\mysql -u root -e "create database ivms_db_clienta"'
ReadRegStr $R0 HKCU "Software\IVMS_CLIENT_ENTERPRISE" "Location" 
 StrCpy $DatabasePath $R0
  nsExec::Exec ' C:\Program Files\MySQL\MySQL Workbench 6.2 CE\mysql -u root -D ivms_db_clienta < D:\IVMS_client\ivms.sql'

但ll导入数据库的最后一个命令不起作用.. 任何人都可以帮我解决这个问题吗?

2 个答案:

答案 0 :(得分:1)

您应始终引用可执行文件的路径:nsExec::Exec '"c:\path\file.ext" param1 "pa r a m2 "'

另一个问题是您正在尝试使用重定向(<),为此,该命令必须由cmd.exe执行:nsExec::Exec '"$sysdir\cmd.exe" /c "c:\path\file.ext" param1 "pa r a m2 " < "c:\some.file"'

作为最后一点,你不应该对路径进行硬编码,使用$ProgramFiles$Instdir,绝对不要以驱动器号开头......

答案 1 :(得分:0)

这条道路可能错误D:\IVMS_client\ivms.sql。您应该将其替换为$INSTDIR\ivms.sql