我正在尝试使用批处理文件在Windows 10上更改某些服务登录。
我的代码是:
set service_name="some service"
set user_password=Pa$$w0rd
@echo stop %service_name%
sc stop %service_name%
timeout 5
@echo Config %service_name%
sc config %service_name% type= own obj= "%userdomain%\%USERNAME%" password= %user_password%
timeout 5
@echo Start %service_name%
sc start %service_name%
我成功停止并更改了服务(输出:[SC] ChangeServiceConfig SUCCESS
),但是当我尝试重新启动服务时,出现此错误:
[SC] StartService失败1069: 该服务由于登录失败而无法启动。
如果我手动更改密码,则可以重新启动该服务,因此我认为这与密码中的空格字符有关,我使用的密码是: Pa$$w0rd
< / strong>。
我已经阅读了一些答案(Batch character escaping,Special Characters in Batch File),但似乎$
没有转义字符。
您能帮我找到$
的转义字符还是指出我的错误?
谢谢!
更新:
按照命令中的建议,我尝试将password变量设置如下:
@set "user_password=Pa$$w0rd"
,然后在sc config
上使用带双引号的变量,但出现相同的错误...