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)
使用子字符串这样做有点简单:
set buildDate=%DATE:~4,10%
set dateStr=%buildDate:~6,4%%buildDate:~3,2%%buildDate:~0,2%
Run Code Online (Sandbox Code Playgroud)
这是一个独立于本地时间格式的解决方案:
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