我是一个Windows批量屏幕菜鸟。所以我需要编写一个执行此操作的脚本:
pushd \\network.com\shared\folder\201501
copy resume*.zip c:\temp\
每次迭代将“201501”更新为201502,201503等。我显然可以写出相同内容的12行,但我想更好地学习循环语法。
我知道我可以用
写一个循环for /l %x in (1, 1, 12) do (
)
但我不确定如何使“201501”成为该路径字符串中的变量,该变量随整数变化,我不知道如何使其处理“01”与“12”问题。 (即:201501 - > 2015012而不是201512)
任何人都可以帮助我吗?
答案 0 :(得分:2)
这将帮助您入门。请注意,您在CMD提示符中使用%x,在bat文件中使用%% x。我使用L代替l,因为l看起来太像1了。
@echo off
for /L %%x in (201502, 1, 201512) do echo(%%x
pause
答案 1 :(得分:2)
RGuggisberg的回答完全有效。只是延长它几年(可能是你的下一个问题):
setlocal enabledelayedexpansion
for /L %%y in (14,1,16) do (
for /L %%m in (1,1,12) do (
REM add a leading zero:
set "month=0%%m"
REM take the last two digits from month:
echo 20%%y!month:~-2!
pushd "\\network.com\shared\folder\20%%y!month:~-2!"
copy "resume*.zip" "c:\temp\"
popd
)
)