批处理文件上的语法错误以创建时间戳目录

时间:2010-08-17 13:31:38

标签: scripting syntax-error batch-file

我尝试使用下面的脚本在我的某个驱动器中创建一个时间戳目录,出于某种原因,在创建目录的最后一个字符串上给出了语法错误。见下文。

:: Code begins....
pause
W:
pause
cd W:\VL2000_AMF\AMF_Archive
pause
for /F "tokens=1-4 delims=. " %%i in ('date /t') do (
set Day=%%i
set Month=%%j
set Year=%%k
)
pause
for /F "tokens=1-4 delims=: " %%i in ('time /t') do (
set Hour=%%i
set Minute=%%j
set Second=%%k
)
pause
md %1\%Year%-%Month%-%Day%
pause
:: Code ends....

2 个答案:

答案 0 :(得分:0)

我在Windows 2000和2003上使用以下命令从date命令输出中获取年,月和日。不幸的是,我不再使用任何XP系统来查看它是否可以在那里工作。

for /F "tokens=2-4 delims=/ " %%i in ('date /t') do (
echo "Day=%%i"
echo "Month=%%j"
echo "Year=%%k"
)

XP上“date / t”和“time / t”输出的格式是什么?

答案 1 :(得分:0)

您确定您的日期会以mm.dd.yyyy的形式返回(以点分隔,并按照您预期的顺序排列)?如果进程的区域设置不符合您的预期,那么%Day%可能最终会出现8/17/2010,这会导致md在尝试解释/17时报告语法错误1}}和/2010作为选项。