dos腳本for循環
發布時間: 2023-06-01 17:18:03
⑴ dos命令for循環中時間問題
應該叫bat腳本較合適一些
由於bat執行時會有個預處理,它是逐句進行的,並且復合句例如一個for循環整體算一個復合句作為一個處理單元,預處理的一個工作就是把%var%類的變數值給"擴展"開來,取值當然就是開始預處理該復合句時的賦值情況,所以%time%會一直不變
解決方法,這里示例一種加call 且%符雙寫的方法:
call echo %%i %%date%% %%time%%>>.\run.TXT (也許不會跨日運行 則date外不雙寫%%也行)
此提問請詳見命令行輸入 set/? 的幫助信息,其中一段 "終於添加了延遲環境變數擴充的支持..." 也舉有例子,介紹的是最常用的處理方法
⑵ 高分,在DOS腳本中如何截取For循環內延遲變數的一部分字元串
可以的,YK老師已經把原因找出來了,縮減代碼別減得過頭了。
!xz:~0,-4!只能減成!xz:~,-4!
我先用
for /l %%a in (1 1 10) do cd.>wkd%%a.xz_bak
建立了_BAK類似文件
然後使用批處理在_BAK文件所在文件夾運行,顯示正常,你可作為參考
@echo off
FOR %%i in (*_BAK) DO (
SETLOCAL ENABLEDELAYEDEXPANSION
SET BAK_FILE_NAME=%%i
ECHO !BAK_FILE_NAME:~,-4!
)
PAUSE
熱點內容