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
热点内容