setを使って変数にデータを入れる。Windowsのbatファイル

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にするという意味。

(Visited 8 times, 1 visits today)

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です