0

あらかじめ決められたサービスをスキャンし、停止した場合に開始するソフトウェアを作成しています。残念ながら、一部のサービス名にはスペースが含まれているため、これを行うと次のようになります。

for %%a in (MSSQLSERVER,SQLSERVERAGENT,Cardinal SPD Delivery Package Service,AuthenticationServiceHost,CommunicationService,CqiProcessorService,IISADMIN,MobileAutmationAgentService,MSMQ) do (

何が起こるかというと、Cardinal SPD Deliveryパッケージは、私が行う場合、1つではなく3つの別個のサービスとして扱われます。

net start "%%a"

例えば。私が見つけた別の方法は、サービスをテキストファイルに入れて実行することです。

for /f %%a in (services.txt) do(

しかし、私はそれがずっときれいなので、最初の方法をしたいと思います。助言がありますか?

4

1 に答える 1

0

%%aすべてのサービス名を二重引用符で囲み、呼び出しで引用符で囲まないでください。

for %%a in ("MSSQLSERVER","SQLSERVERAGENT","Cardinal SPD Delivery Package Service","AuthenticationServiceHost","CommunicationService","CqiProcessorService","IISADMIN","MobileAutmationAgentService","MSMQ") do (
net start %%a
)

または、複数の単語のみを二重引用符で囲み、%%a呼び出すときに引用符を削除します。

for %%a in (MSSQLSERVER,SQLSERVERAGENT,"Cardinal SPD Delivery Package Service",AuthenticationServiceHost,CommunicationService,CqiProcessorService,IISADMIN,MobileAutmationAgentService,MSMQ) do (
net start %%~a
)
于 2012-11-09T18:34:21.853 に答える