For loop 切割相当于dos不工作的循环
切割相当于dos不工作的循环 每周_date.txt的内容For loop 切割相当于dos不工作的循环,for-loop,substring,batch-file,For Loop,Substring,Batch File,切割相当于dos不工作的循环 每周_date.txt的内容 18092012 19092012 20092012
18092012
19092012
20092012
21092012
22092012
23092012
24092012
我正在运行一个批处理脚本&在下面的部分中面临一个变量值替换问题
==============================================================================================然后在
SET bp=/xx/yy/%/%mm%/%dd%
SET br=/aa/bb/%/%mm%/%dd%
SET TP=F:\xx\%yy%\%mm%\%dd%\ff
当运行批处理脚本时,它以下面的方式被替换
SET bp=/xx/yy/%i:~2,2/%i:~0,2
SET br=/aa/bb/%i:~2,2/%i:~0,2
SET TP=F:\xx\%i:~4,4\%i:~2,2\%i:~0,2\ff
实际上,输出必须是
/xx/yy/09/18
/aa/bb/09/18
F:\xx\2012\09\18\ff
/xx/yy/09/19
/aa/bb/09/19
F:\xx\2012\09\19\ff
。。。。
/xx/yy/09/24
/aa/bb/09/24
F:\xx\2012\09\24\ff
有人能指出我哪里出了问题吗
提前谢谢
sree对于您的代码,我将做两个主要更改:1)将For循环的输入设置为另一个变量(称为var)以进行操作2)启用延迟扩展,这允许在每次For循环迭代中对变量进行操作。如果需要对我的代码进行任何其他更改,请告知我=] 我的代码如下:
@echo off
setLocal EnableDelayedExpansion
for /f %%I in (weekly_date.txt) do (
set var=%%I
set yy=!var:~4,4!
set mm=!var:~2,2!
set dd=!var:~0,2!
set bp=/xx/yy/!mm!/!dd!
set br=/aa/bb/!mm!/!dd!
set TP=F:\xx\!yy!\!mm!\!dd!\ff
echo !bp! !br! !TP!
)
endlocal
使用您提供的相同的weekly_dates.txt输入,此代码的输出为:
/xx/yy/09/18 /aa/bb/09/18 F:\xx\2012\09\18\ff
/xx/yy/09/19 /aa/bb/09/19 F:\xx\2012\09\19\ff
/xx/yy/09/20 /aa/bb/09/20 F:\xx\2012\09\20\ff
/xx/yy/09/21 /aa/bb/09/21 F:\xx\2012\09\21\ff
/xx/yy/09/22 /aa/bb/09/22 F:\xx\2012\09\22\ff
/xx/yy/09/23 /aa/bb/09/23 F:\xx\2012\09\23\ff
/xx/yy/09/24 /aa/bb/09/24 F:\xx\2012\09\24\ff
/xx/yy/09/18 /aa/bb/09/18 F:\xx\2012\09\18\ff
/xx/yy/09/19 /aa/bb/09/19 F:\xx\2012\09\19\ff
/xx/yy/09/20 /aa/bb/09/20 F:\xx\2012\09\20\ff
/xx/yy/09/21 /aa/bb/09/21 F:\xx\2012\09\21\ff
/xx/yy/09/22 /aa/bb/09/22 F:\xx\2012\09\22\ff
/xx/yy/09/23 /aa/bb/09/23 F:\xx\2012\09\23\ff
/xx/yy/09/24 /aa/bb/09/24 F:\xx\2012\09\24\ff