#Intro
DOSバッチ書く際によく使うものたちの自分用メモです
DOSは覚えられません。
随時更新します
#メモ
####エコーオフ
@echo off
####変数遅延展開
FORやIFなど条件ブロックで変数使うときに利用します
set enabledelayedexpansion
rem 変数を条件,ブロックで使うときは%hoge%でなく!hoge!にする
####バッチパラメータ(引数のパスとか)のまとめ
rem 実行バッチそのもの
%0
rem 第一引数そのもの
%1
rem #####以下第一引数(%1)を例に記載#####
rem "とかを外して展開
%~1
rem ドライブ名
%~d1
rem ディレクトリ名のみ
%~p1
rem ファイル名(拡張子なし)
%~n1
rem ディレクトリまでのフルパス
%~dp1
rem 拡張子のみ
%~x1
####batを実行するディレクトリに移動
cd %~dp0
####日付取得系
set dt=%date%
rem 年
set year=%dt:~-10,4%
rem 月
set month=%dt:~-5,2%
rem 日
set day=%dt:~-2,2%
rem 一発
echo %date:~-10,4%%date:~-5,2%%date:~-2,2%
####時間取得系
rem 先頭を0埋めする(時間が一桁台の場合)
set timetmp=%time: =0%
rem 時間
set hour=%timetmp:~0,2%
rem 分
set minites=%timetmp:~3,2%
rem 秒
set sec=%timetmp:~6,2%
####配下のファイルリスト表示(ディレクトリ付き)
dir /s /b /a-d
rem csvとsqlを探す
dir *.sql *.csv /s/ b/ /a-d
####標準出力とエラーをログに書き出す
hoge.bat > hoge.log 2>&1
####簡単な実行正否の判断
rem 処理が失敗(実行コード0以外のとき)に処理をする
del none.txt || echo failed
rem 処理が成功(実行コード0のとき)に処理をする
del exists.txt && echo success