我在这里遇到了与此海报几乎相同的问题: 如何将双引号字符串传递给 binPath 的 sc.exe
但我不想依赖线程。我有一个 MySQL 服务,它的 binpath 中不仅有可执行文件,还有参数选项。我需要知道如何正确格式化引用的字符串以更改服务,因为我正在将特定配置从一台服务器迁移到另一台服务器。另外,作为迁移的一部分,我正在将 MySQL 升级到新版本,因此我不能只导出服务的旧注册表项,因为主路径不匹配。
使用数据库 MyDatabaseInstance 的原始设置服务 binpath(我们将服务称为“MySQLd”,我已经对其进行了清理,因为它是一个特定的应用程序):
"C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld.exe" --defaults-file="C:\ProgramData\MySQL\MySQL Server 8.0\my.ini" MyDatabaseInstance
我需要它是这样的:
"C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld.exe" --defaults-file="D:\Database\my.ini" MyDatabaseInstance
我尝试了一些选择,但我无法完全实现。谢谢大家的帮助。
我已经完成一半了:
sc.exe config MySQLd binPath= "\"C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld.exe\" --defaults-file="D:\Database\my.ini" MyDatabaseInstance
这修复了前半部分,但将引号排除在“D:\Database\my.ini”之外。
您还必须封装第二个双引号
sc.exe config MySQLd binPath= "\"C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld.exe\" --defaults-file=\"D:\Database\my.ini\" MyDatabaseInstance"