0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Windowsのバッチ処理でもこれが出来るんだと感心した事

Posted at

背景

仕事でWindows Serverで動かすSQL Server起動停止用バッチファイルを作らなくてはいけなくなった。
その時に周りから教えてもらったコマンドや処理が、要件にぴたりはまってとても助かったので、
忘れないようにメモ。

要件

  • サーバが複数台有り、サーバによって起動しているサービスが微妙に違うので、サーバによって停止するサービスを
    変更しやすくする
    →サービスのリスト化をする部分で、不要なサービスをremでコメント化
  • バッチ実行結果を後で確認出来るよう、ログを出力する。ログファイル名に日付を入れる。
    (7世代保存、それより古くなったら自動削除)

SQL Serverの起動・停止させるサービスを指定

指定するサービスは、サービス一覧>プロパティ>サービス名 に表示されている名前で指定が必要
→最初自分で調べてこれが分からず、少しはまった。
※対象部分を全体のバッチファイルから抜き出して記載

set SERVICE_LIST=
set SERVICE_LIST=%SERVICE_LIST% MSSQLSERVER
set SERVICE_LIST=%SERVICE_LIST% MSSQLFDLauncher
set SERVICE_LIST=%SERVICE_LIST% SQLSERVERAGENT
set SERVICE_LIST=%SERVICE_LIST% MSSQLServerOLAPService
set SERVICE_LIST=%SERVICE_LIST% SQLBrowser
set SERVICE_LIST=%SERVICE_LIST% MsDtsServer100
set SERVICE_LIST=%SERVICE_LIST% ReportServer
set SERVICE_LIST=%SERVICE_LIST% SQLWriter

7日以前に作成されたログファイルを削除

最初はこれが出来るというのを知らず、1行だけのVBスクリプトを外部ファイルで使おうとしていた。

set LOGFILES=sqlstart_*.log
forfiles /d -7 /m %LOGFILES% /c "cmd /c del @file" 2>> NUL

今回勉強になった事

  • ○日以上たったファイルの削除が出来るコマンドが、バッチで扱えるのが分かった。
  • 起動停止で指定するサービス名を、サービス一覧>プロパティ>サービス名 に表示されている名前で指定が必要な事。
  • バッチファイルも意外と使える事。(でもやっぱりLinuxのシェルスクリプトの方がやりやすくて助かるけど)
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?