LoginSignup
11
12

More than 5 years have passed since last update.

Windowsバッチファイルの小技

Last updated at Posted at 2017-01-21

はじめに

Windowsでバッチファイルをプログラミングする際の小技について纏めました。

環境

OS : Windows Server 2012 R2

前提

基本的なWindowsコマンド(DOSコマンド)の知識

参考

なし

解説

リダイレクション

  • 標準出力の内容をファイル(result.txt)に出力します。
test.bat
@echo off

dir > result.txt
  • 標準エラー出力の内容をファイル(result.txt)に出力します。
test.bat
@echo off

dir 2> result.txt
  • 標準出力と標準エラー出力の内容を同時にファイル(result.txt)に出力します。
test.bat
@echo off

dir > result.txt 2>&1

イベントログ

  • イベントログにメッセージを出力します。
    ※複数イベントを続けて出力する場合、処理が速すぎて順番通りにイベントビューアーに出力されない場合があります。その場合は、eventcreateの前に待ち処理を記述します。
オプション 説明
/id イベントIDを指定します。 (1~1000)
/l ログ種別を指定します。 (APPLICATION, SYSTEM)
/so ソースを指定します。システムで予約されている名称は指定不可。
/t レベルを指定します。 (ERROR, WARNING, INFORMATION)
/d イベントの説明を指定します。
test.bat
@echo off

eventcreate /id 999 /l application /so TEST_EVENT /t information /d "処理開始します"

空ファイル作成

  • 何かの処理処理判定などを行う場合、一時的に空のフラグファイルを作成する場面がありますが、下記コマンドで作成可能です。
test.bat
@echo off

type nul > flag.txt

日付取得

  • 出力ファイルに今日の日付を付加して保存したい場面がありますが、下記コマンドで実現可能です。
test.bat
@echo off

set YYYYMMDD=%DATE:/=%
dir > result.txt.%YYYYMMDD%

待ち処理

  • バッチファイル内で待ち処理を行いたい場合は下記コマンドを使用します。 Windows VistaやWindows Server 2003以降は、timeoutコマンドが使用可能ですが、それ以前のOSについては、pingコマンドで代用していください。
test1.bat
@echo off

ping localhost -n 2
test2.bat
@echo off

timeout /t 5 > nul
11
12
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
11
12