2010-08-17 74 views
0

我试过下面的脚本在我的一个驱动器中创建一个时间戳目录,出于某种原因给我一个语法错误的最后一个字符串,它创建目录。见下文。批处理语法错误文件来创建一个时间戳目录

:: 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.... 
+0

您正在使用哪个版本的Windows?当我尝试类似于上述内容时,月份设置为“08/17/2010”,这将导致语法错误,将其替换为md命令行时。 – joast 2010-08-17 14:27:14

+0

Windows XP Professional。 – Patron0119 2010-08-17 14:38:38

回答

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”输出格式是什么?

+0

取决于语言环境,我期望。 – 2010-08-17 14:54:10

+0

是的,日期输出应取决于区域设置。但是,我不知道XP是否是真的,因为我没有安装任何系统。 – joast 2010-08-17 15:00:05

0

你确定你的日期是作为mm.dd.yyyy回来吗(用点分开,并且按照你期望的顺序分开)?如果进程的语言环境不符合您的期望,那么您可能会以%Day%结尾,如8/17/2010,这会导致md在尝试将/17/2010解释为选项时报告语法错误。