下記は、6秒待って時刻を表示するのを繰り返す記述ですが、
「開始」の時間と「終了」の時間が同じになってしまいます。
【コード】
--------------------------------------------------
:flg_check
if exist %FlgFile% (
echo %time% 開始
echo WScript.Sleep 6000 > %TmpFile%
cscript //NoLogo %TmpFile%
echo %time% 終了
goto flg_check
)
--------------------------------------------------
【結果】
--------------------------------------------------
10:26:14.30 開始
10:26:14.30 終了
10:26:20.41 開始
10:26:20.41 終了
--------------------------------------------------
開始時刻の6秒後の時刻が終了時刻にならないのですが、なぜでしょうか?
No.2ベストアンサー
- 回答日時:
setlocal ENABLEDELAYEDEXPANSION
は、setlocalという内部コマンドを、ENABLEDELAYEDEXPANSION という引数付きで
実行することです。
このことにより環境変数の値が勝手に変わることはありません。
%環境変数%の他に、!環境変数!と書いたときも
環境変数の内容の展開を行うようになり、
そのタイミングが、バッチファイルの読み込み時ではなく
その行実行時に行われるということだけです。
詳しくは
setlocal /?
ででてくるヘルプを参照してください。
No.1
- 回答日時:
%time% の時刻文字列への展開のタイミングが、
それぞれの行へ到達した時点ではなく、
()ないのサブテキストが読み込まれた時点で一度に行われてしまうために、これら二つの内容が同じになってしまいます。
これを避け、希望の結果を得るには
バッチファイルの先頭または@echo off行の後に
setlocal ENABLEDELAYEDEXPANSION
という行を追加し、
> echo %time% 終了
この行を
> echo !time! 終了
のように変更します。
詳しくは
set /?
cmd /?
あるいは cmd.exe 遅延評価 環境変数
といったキーワードの組み合わせで検索してみてください。
sakusaker7さん
回答ありがとうございます。
setlocal ENABLEDELAYEDEXPANSION について質問させてください。
これは、環境変数の値を変更するということですか?
この設定をすることでdefault値が変わる等はないでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 指定した値以上の中で最小値を出したい 7 2022/10/24 21:12
- docomo(ドコモ) 通話録音が(最初から)自動的に始まるアプリは? 7 2023/01/16 15:53
- その他(Microsoft Office) エクセル 条件付き書式 日をまたぐ塗りつぶし 1 2023/01/13 18:00
- Excel(エクセル) エクセル2019の関数を教えてください。 8 2022/12/16 12:45
- 日本語 「に」と「で」 5 2022/04/06 01:43
- Excel(エクセル) エクセルで日別シフト表を作る(セルに色を付ける) 3 2022/10/15 14:17
- その他(Microsoft Office) outlook vba 予定表 3 2022/11/20 14:51
- Windows 10 ディスククリーンアップ 2 2023/01/03 18:59
- Excel(エクセル) 日付で矢印マクロ 4 2023/07/25 16:47
- Excel(エクセル) 【Excel】 開始時間からある日時までの経過時間を計算する関数を教えて下さい 5 2023/06/11 22:22
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
バッチでテキストファイルから...
-
コマンドプロンプト標準出力と...
-
コマンドプロンプトで2ヶ月前3...
-
バッチファイルで昨日の日付を取得
-
コマンドプロンプト(バッチファ...
-
Kシェルでgotoのような処理を作...
-
バッチファイルで常に最新の現...
-
batの変数を直接vbsのプログラ...
-
バッチファイルでDirで取得した...
-
バッチファイル ファイル内で改...
-
PowerShellからPowerShellを呼...
-
IPアドレスの第3オクテットだ...
-
絶対パス名からファイル名を取...
-
バッチファイルで2つ以上の変...
-
DOSのバッチで、変数中のファイ...
-
VBアプリケーションで終了コー...
-
コマンドプロンプト画面の閉じ...
-
子バッチ内のキー入力処理へ自...
-
コマンドプロンプトの「%1」と...
-
大量のフォルダからひとつのフ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バッチでテキストファイルから...
-
コマンドプロンプト標準出力と...
-
バッチファイルで昨日の日付を取得
-
コマンドプロンプト(バッチファ...
-
コマンドプロンプトで2ヶ月前3...
-
コマンドプロンプト画面の閉じ...
-
絶対パス名からファイル名を取...
-
呼び出し元バッチを知るには?
-
VBアプリケーションで終了コー...
-
コマンドプロンプト(バッチ)...
-
バッチファイルでDirで取得した...
-
echoとsystem関数について
-
バッチファイルで常に最新の現...
-
子バッチ内のキー入力処理へ自...
-
IPアドレスの第3オクテットだ...
-
DOSのバッチで、変数中のファイ...
-
バッチファイル テキストファイ...
-
DOSのバッチで、テキストファイ...
-
C#でメジャーなバッチフレーム...
-
batの変数を直接vbsのプログラ...
おすすめ情報