Windows 7批处理作业中的格式化日期

use*_*571 5 format cmd date batch-file

我正在尝试在Windows 7批处理作业中使用当前日期.批处理作业打开多个文件,这些文件附加了今天的日期.例:

start \\\Directory_Name\Rpts\20130801\0000A060_FileName_20130801.pdf

start \\\Directory_Name\Rpts\20130801\0000P083_FileName_20130801.pdf

start \\\Directory_Name\Rpts\20130801\00007P12_FileName_20130801.pdf
Run Code Online (Sandbox Code Playgroud)

如果我运行echo %date%我得到:"星期四08/01/2013"

我知道我可以跑步echo %date:/=%并得到:"Thu 08012013*"

但我想删除"星期四"(今天)并将日期格式化为"20130801"(yyyymmdd)而不是mmddyyyy.

所以最终打开的文件命令看起来像下面%date%插入了正确的命令: start \\\Directory_Name\Rpts\%date%\00007P12_FileName_%date%.pdf

谁知道我怎么做到这一点?

fox*_*ive 13

一种强大的,区域不敏感的方法:

@echo off
for /f "delims=" %%a in ('wmic OS Get localdatetime  ^| find "."') do set "dt=%%a"
set "YYYY=%dt:~0,4%"
set "MM=%dt:~4,2%"
set "DD=%dt:~6,2%"
set "HH=%dt:~8,2%"
set "Min=%dt:~10,2%"
set "Sec=%dt:~12,2%"

set datestamp=%YYYY%%MM%%DD%
set timestamp=%HH%%Min%%Sec%
set fullstamp=%YYYY%-%MM%-%DD%_%HH%-%Min%-%Sec%
echo datestamp: "%datestamp%"
echo timestamp: "%timestamp%"
echo fullstamp: "%fullstamp%"
pause
Run Code Online (Sandbox Code Playgroud)


Egg*_*Egg 5

使用子字符串这样做有点简单:

set buildDate=%DATE:~4,10%
set dateStr=%buildDate:~6,4%%buildDate:~3,2%%buildDate:~0,2%
Run Code Online (Sandbox Code Playgroud)


Ste*_*han 5

这是一个独立于本地时间格式的解决方案:

for /f "tokens=2 delims==" %%I in ('wmic os get localdatetime /format:list') do set datetime=%%I
Run Code Online (Sandbox Code Playgroud)

然后%datetime:~0,8%会给你你的YYYYMMDD