我想使用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导入数据库的最后一个命令不起作用.. 任何人都可以帮我解决这个问题吗?
答案 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