for /f %%i in ('dir /s /b "%FolderLocation%"') do (
MOVE %%i "%processedFolder%Imported-%date:~4,2%-%date:~7,2%-date:~10,4%_@_%time:~1,1%h%time:~3,2%m%time:~6,2%s%"
PING 1.1.1.1 -n 1 -w 10000 >nul
)
上面的脚本总是产生相同的时间戳。基本上,它是将文件从给定文件夹移动到新位置,并将时间戳添加到新文件。但是它们最终都带有相同的时间戳。我有10秒的延迟,应该使时间戳有所不同。怎么了?
在for循环中,使用%
expand变量将使用在for循环开始之前的值。EnableDelayedExpansion
使您可以使用!
而不是,%
并且可以在for循环中使用:
@echo off
setlocal enabledelayedexpansion
for /f %%i in ('dir /s /b "%FolderLocation%"') do (
MOVE %%i "!processedFolder!Imported-!date:~4,2!-!date:~7,2!-!date:~10,4!_@_!time:~1,1!h!time:~3,2!m!time:~6,2!s!"
PING 1.1.1.1 -n 1 -w 10000 >nul
)
那应该起作用。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句