揮発性のメモ2

最近知った知識を さも昔から知ってた風にメモ書きしていく

現在時刻をファイルに保存 2

現在時刻を同じフォルダにあるログファイルにどんどん追記するバッチファイル
ログファイル名はdate-xxxx.log
xxxx にはコンピュータ名の先頭4文字が入る

echo %date% %time%>> "%~dp0date-%computername:~0,4%.log"
%date% 現在日付
%time% 現在時刻
%~dp0 実行ファイルパス
%computername% コンピューター名

ファイルパスについて

詳細はDOS窓で call /? と打つことで確認できる

%0 実行ファイルのファイル名(呼び出し時の文字列)
%~0 ~をつけると、"" を外す
%~d0 ドライブ名
%~p0 パス
%~n0 拡張子抜きのファイル名
%~x0 拡張子
%~dpnx0 フルパスファイル名
%~f0 フルパスファイル名
%~t0 ファイル時刻(YYYY/MM/DD HH:MM)
%~z0 ファイルサイズ(バイト)
C:\Data>".\test.bat"
%0      '".\test.bat"'
%~0     '.\test.bat'
%~d0    'C:'
%~p0    '\Data\'
%~n0    'test'
%~x0    '.bat'
%~dpnx0 'C:\Data\test.bat'
%~f0    'C:\Data\test.bat'
%~t0    '2026/12/26 10:16'
%~z0    '222'

文字列の切り出しについて

詳細はDOS窓で set /? と打つことで確認できる

また、展開の副文字列を指定することもできます。

    %PATH:~10,5%

は、PATH 環境変数を展開し、展開結果の 11 番目 (オフセット 10) の文字
から始まる 5 文字だけを使います。長さが指定されなかった場合は、変数の
値の残りの長さを既定値とします。オフセットまたは長さのどちらかが負の値
の場合、環境変数の値の長さに指定されたオフセットまたは長さをたしてその
数を使います。

    %PATH:~-10%

は、パス変数の最後の 10 文字が展開されます。

    %PATH:~0,-2%

は最後の 2 文字以外のすべてが展開されます。