
批處理命令FOR循環里面定義變量取值錯誤想定功能:在FOR循環了進行某個操作(如導出數據庫表數據),想輸出記錄一下沒一次操作的開始結束時間。問題點:執行了下面的代碼后,發現在FOR循環里面重新定義的變量【nowtime】的值,每次都是取的FOR循環外面定義的同名變量【nowtime】的值。發下這個問題后,做了一下還嘗試: 1、懷疑同名變量的問題。把FOR循環里面的變量名改變一下【set nowtime1=%time: =0%】,但是發現輸出【/07/29 ~,8 】。還是有問題。 2、懷疑執行時間短,瞬間執行完了。每次PAUSE暫停幾秒,但是問題依舊。求助事項:請各位看看我的代碼有什么問題,以及如何實現我要求的功能。代碼如下:--------------------------------------------------------------------代碼開始(本行非代碼行)--------------------------------------------------------------------
--------------------------------------------------------------------代碼結束(本行非代碼行)--------------------------------------------------------------------實行結果如下:--------------------------------------------------------------------結果開始(本行非結果行)--------------------------------------------------------------------##***************************************************************************## /07/29 10:17:00 .No.1 [1] /07/29 10:17:00 /07/29 10:17:00 No.2 [2] /07/29 10:17:00 /07/29 10:17:00 No.3 [3] /07/29 10:17:00 /07/29 10:17:00 No.4 [4] /07/29 10:17:00 /07/29 10:17:00 No.5 [5] /07/29 10:17:00 /07/29 10:17:00 No.6 [6] /07/29 10:17:00 /07/29 10:17:00 No.7 [7] /07/29 10:17:00 /07/29 10:17:00 No.8 [8] /07/29 10:17:00 /07/29 10:17:00 No.9 [9] /07/29 10:17:00 /07/29 10:17:00 No.10 [10] /07/29 10:17:00 /07/29 10:17:00 . /07/29 10:17:04 ##***************************************************************************## --------------------------------------------------------------------結果結束(本行非結果行)--------------------------------------------------------------------nclick="copycode($('code0'));">復制代碼
- @ECHO OFF & setlocal EnableDelayedExpansion
- TITLE test
- ECHO ##***************************************************************************## > log.txt
- REM BAT運行開始時間記錄
- set nowtime=%time: =0%
- ECHO %date% %nowtime:~,8% >> log.txt
- ECHO .>> log.txt
- SET COUNT=0
- FOR %%i IN (1,2,3,4,5,6,7,8,9,10) DO (
- SET /A COUNT+=1
- ECHO No.!COUNT! [%%i] >> log.txt
- REM 處理開始時間記錄
- set nowtime=%time: =0%
- ECHO %date% %nowtime:~,8% >> log.txt
- REM 暫停處理
- PAUSE
- REM 處理結束時間記錄
- set nowtime=%time: =0%
- ECHO %date% %nowtime:~,8% >> log.txt
- )
- ECHO . >> log.txt
- REM BAT運行結束時間記錄
- set nowtime=%time: =0%
- ECHO %date% %nowtime:~,8% >> log.txt
- ECHO ##***************************************************************************## >> log.txt
- PAUSE>nul
- @ECHO ON

