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秒的延迟,这应该使时间戳不同。怎么了?
答案 0 :(得分:1)
在for循环中,使用%
扩展变量将使用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
)
这应该有用。