C:\Users\username>set aa=123
C:\Users\username>echo %aa%
123
変数aaに123を入れる例。Setコマンドを使う。
Echoコマンドは出力。Printね。
%aa%の%と%で囲むと変数として扱う。
変数(コマンドプロンプトの環境変数)を見る。ほとんどがWindowsの環境変数。Setコマンドで全部が見れる。
C:\Users\username>set
一覧。
一行一行に
変数名=値の書式で見える。
aa変数を見たい場合は、
Setコマンドの出力結果をフィルタ(Findコマンド)に通す。
|はパイプ。Setコマンドの出力結果をFindコマンドの入力にする。
C:\Users\username>set | find “aa”
aa=123
さて本題。
次は、変数の値(コマンドプロンプトに表示するので基本、文字列)の一部を取り出す。
C:\Users\username>set aa=12345
C:\Users\username>set aa=%aa:~2,2%
C:\Users\username>echo %aa%
34
%aa:~2,2%は、aa変数の2文字から2文字分取り出す。
使い方というか書式は、
変数:%処理内容%。
変数がaa、処理内容が~2,2。
次は置換の例。
C:\Users\username>set aa=12345 前にaaに12345を入れていたらいらない。
C:\Users\username>set bb=%aa:3=8%
C:\Users\username>echo %bb%
12845
3を8に変えた。次は、削除の例。
C:\Users\username>set cc=%aa:3=%
C:\Users\username>echo %cc%
1245
3を削除した。
DateコマンドとTimeコマンドの実行例
C:\Users\usename>date
現在の日付: 2018/11/16
新しい日付を入力してください: (年-月-日)
C:\Users\usename>time
現在の時刻: 13:17:45.72
新しい時刻を入力してください:
変更を促されるが無視してエンターキーで終わる。
単にdateやtimeコマンドを実行すると、余計な文字列が見える。
現在の時間とか現在の時刻。
それに新しい日付。。。や新しい時刻。。。も。
実際は違う。
次は、DateコマンドとTimeコマンドの出力を変数に入れる例。
C:\Users\username>set aa=%date%
C:\Users\username>set bb=%time%
C:\Users\username>echo %aa% %bb%
2018/11/18 14:31:42.24
Date、Timeコマンドは、純粋に日付と時間を出力している。
Dateコマンドの/を削除する。
C:\Users\usename>set aa=%date:/=%
C:\Users\usename>echo %aa%
20181118
Timeコマンドの空白を0にする。
C:\Users\usename>set tt=%time: =0%
C:\Users\usename>echo %tt%
13:18:29.73
Setコマンドの使い方は、ここが参考になる。
set 変数=%コマンド:変換元=変換先%
変換先が無いと消すことになる。aa=%date:/=%は、dateコマンドの出力の/を削除する。その結果を、aa変数に入れる。%time: =0%の場合は、timeコマンドの出力の空白文字を0にするという意味。