需要正确的带引号的字符串语法来更改 Windows 服务 Binpath

问题描述 投票:0回答:1

我在这里遇到了与此海报几乎相同的问题: 如何将双引号字符串传递给 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”之外。

mysql windows command-line service syntax
1个回答
0
投票

您还必须封装第二个双引号

sc.exe config MySQLd binPath= "\"C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld.exe\" --defaults-file=\"D:\Database\my.ini\" MyDatabaseInstance"
© www.soinside.com 2019 - 2024. All rights reserved.