†DOSとバッチとスクリプト†
作成開始日 2017.09.12
最終更新日
操作 | 構文 | 用例 | 用例の説明 |
@置換 | %st:before=after% | echo %st:I=We% | 「I」を「We」に変換する |
A削除 | %st:delstr=% | echo %st: =% | スペースを削除する |
B切り出し | %st:~start,chars% | echo %st:5,3% | 6文字目から3文字切り出す |
%st:~start% | echo %st:~3% | 4文字目から末尾まで切り出す | |
%st:~-chars% | echo %st:~-2% | 末尾から2文字切り出す |
Aの削除は@の置換の応用(ブランクへの置換)
Bの切り出しの開始点は先頭が0、文字目とは1ずれるので注意
と言うことで、バッチ内での文字列の操作が必要になる。具体的に次のようになる;
日付取得と置換処理を1行にまとめることもできる。
【参考】DATA関数の日付文字列は、for文でdelimsを「/」に指定すれば奇麗に分解することができる。単にファイル名の付け替えだけなら上記のような方法でもよいが、日付計算などをする場合には、for文で分解する方が便利だろう。
SET DT=%DATE% 日付の取得、「2017/09/12」の形式で出力されるが「/」は厄介
SET NEWDT=%DT:/=_% NEWDTは「2017_09_12」の形式となる
SET NEWDT=%DT:/=% こちらは「20170912」形式となる
SET DT=%DATE:/=-% DTは「2017-09-12」形式となる
さらに「年」を二桁にする場合には、切り出し処理を行う;
SET DT=%DATE% 日付情報の取得(「yyyy/mm/dd」形式)
SET DT1=%DATE:/=-% 「yyyy-mm-dd」形式に変換
SET DT2=%DT1:~2,8% 「yy-mm-dd」形式に変換
SET DT=%DATE% 日付情報の取得(「yyyy/mm/dd」形式)
SET DT1=%DATE:/=% 「yyyymmdd」形式に変換
SET DT2=%DT1:~2,6% 「yymmdd」形式に変換
set yyyy=%%a
set mm=%%b
set dd=%%c
)
【DOSとバッチ目次】
【ホーム】