1

sc コマンドを使用して、マシンで実行されているサービスをクエリし、次のようなコードを使用していました。

      sc \\"server_name" query | find "SERVICE_NAME" > servicelist2.txt

したがって、基本的にすべてのサーバー名がこの 1 つのメモ帳ファイルに一覧表示されます。それらの100以上があります。それぞれの名前を手動で入力し、100 行以上のコードを記述するのは非常に困難です。バッチ自体を使用してメモ帳ファイルに移動し、そこに書き込まれたすべてのサーバー名を繰り返し処理してから、「sc」コマンドに戻す方法はありますか?

編集:それが明白でない場合、ところでWindowsを使用しています。上記のバッチ スクリプトを使用します。

4

3 に答える 3

2

同じディレクトリにservers.listという名前のファイルがあると仮定すると、これを使用できます。

for /f %%a in (%~d0%~p0servers.list) do (
  ECHO %%a > servicelist2.txt
  sc \\%%a query | find "SERVICE_NAME" > servicelist2.txt
)
于 2012-09-06T18:37:19.147 に答える
1

for /fでこれを行うことができます:

OR /F "usebackq tokens=*" %%G IN ("C:\My Documents\servers.txt") DO (
 sc \\%%G query | find "SERVICE_NAME" > servicelist2.txt
)
于 2012-09-06T18:37:12.740 に答える