我无法在嵌套循环中为我的文件修改日期。
我正在运行这个批处理脚本:
@ECHO OFF
SETLOCAL EnableDelayedExpansion
net use S: \\devfs\edcsrc\epoletto\campusanyware
SET CLIENTS= DEMO
FOR %%a in (%CLIENTS%) DO (
S:
CD AD
FOR %%B in (*.cbl) DO (
set file=%%B
echo !file!
for %%c in (!file!) do (echo %%~ta))
)
pause
net use S: /delete /Y
ECHO.
这是我的输出:
The command completed successfully.
ad1.cbl
ECHO is off.
ad2.cbl
ECHO is off.
ad3.cbl
ECHO is off.
Press any key to continue . . .
我的所有文件名都是正确的,但是当脚本进入第三个FOR循环时(对于%!c in(!file!)do(echo %%〜ta))),我无法获取日期/为我的文件修改时间。
作为概念验证,我从目录中的命令行尝试了相同的逻辑:
for %B in (*.cbl) DO (for %a in (%B) do echo %~ta)
我的命令输出是(包括初始命令):
V:\>for %B in (*.cbl) DO (for %a in (%B) do echo %~ta)
V:\>(for %a in (ad1.cbl) do echo %~ta )
V:\>echo 05/02/2017 11:32 AM
05/02/2017 11:32 AM
V:\>(for %a in (ad2.cbl) do echo %~ta )
V:\>echo 04/18/2017 02:04 PM
04/18/2017 02:04 PM
V:\>(for %a in (ad3.cbl) do echo %~ta )
V:\>echo 04/27/2017 11:46 AM
04/27/2017 11:46 AM
我很困惑为什么我无法从我的脚本中获取这些日期。我的最终目标是检查每个文件的日期,然后根据该日期执行另一个命令。现在我只想验证我可以使用echo获取日期。任何建议都表示赞赏!
谢谢!
答案 0 :(得分:0)
而不是
for %%c in (!file!) do (echo %%~ta))
使用
for %%c in (!file!) do (echo %%~tc))
因为您希望修改时间为%%c
,而不是%%a
。
:)