質問編集履歴

1

タイトル誤字と質問の文言を修正しました。

2020/03/24 04:52

投稿

takibi
takibi

スコア4

test CHANGED
@@ -1 +1 @@
1
- バッチファイル ifで遅延環境変数を比較する場合
1
+ バッチファイル if文の条件句で遅延環境変数を使用する方法
test CHANGED
@@ -2,9 +2,11 @@
2
2
 
3
3
 
4
4
 
5
- ファイル更新日付と現在時刻を比較する処理を作成しています。
5
+ ファイル更新日付と現在時刻の2分前の時刻を比較する処理を作成しています。
6
6
 
7
+ 現在時刻の2分前の時刻とファイル更新日付をYYYYMMDDhhmmの形で変数に格納することはできましたが、
8
+
7
- ファイル更新日付の取得まではできたのですが、if文でうま分岐でできません。
9
+ ファイル更新日付の変数をifの条件句にいれると値を参照してません。
8
10
 
9
11
 
10
12
 
@@ -32,7 +34,7 @@
32
34
 
33
35
  rem 現在日付より2分前の時刻を作成
34
36
 
35
- set datetime1=%date:~0,4%%date:~5,2%%date:~8,2%%time2:~0,2%%mn%
37
+ set datetime1=%date:~0,4%%date:~5,2%%date:~8,2%%hh%%mn%
36
38
 
37
39
 
38
40
 
@@ -46,7 +48,7 @@
46
48
 
47
49
 
48
50
 
49
- for /r %%A in (kashidashi*.txt) do (
51
+ for /r %%A in (test*.txt) do (
50
52
 
51
53
  setlocal enabledelayedexpansion
52
54
 
@@ -82,13 +84,7 @@
82
84
 
83
85
  ### 試したこと
84
86
 
85
- datetime1には現在時刻の2分前をセットしています。
86
-
87
- datetime3にファイルの更新日時をセットしたのですが、if文条件句の書き方がわるいのか、
88
-
89
- datetime1<datetime3の場合もtrueとして処理されてしまいます。
90
-
91
- batを起動すると該当箇所下記のように表されます。
87
+ 上記コードのbatを起動すると該当のif条件句の箇所下記のように表されます。
92
88
 
93
89
 
94
90
 
@@ -100,6 +96,10 @@
100
96
 
101
97
 
102
98
 
99
+ datatime3へセット直後のechoでは値が出力されているので、値のセットはされているようです。
100
+
101
+
102
+
103
103
  どのように書けばよろしいでしょうか。
104
104
 
105
105
  ご教示願います。