Batch file Bat文件创建文件夹的日期是不是添加了日期?

Batch file Bat文件创建文件夹的日期是不是添加了日期?,batch-file,directory-structure,Batch File,Directory Structure,所以我试图让这个BAT创建一个带有日期的文件夹,我尝试了大约5个不同的变体,它们都创建了一个额外的文件夹,到目前为止,我使用的最好的一个是 当前我正在使用的(不是我的代码,是从另一个线程获得的) 这将创建一个目录:“D:\share\Backup\Data-04-17”,正如您所见,它不适用于当天。有人能帮我修改一下,让这一天顺利吗 编辑:示例的日期应为2017年4月23日或2017年4月23日 编辑2:根据建议更改令牌,请参见下文了解工作BAT REM Create a folder

所以我试图让这个BAT创建一个带有日期的文件夹,我尝试了大约5个不同的变体,它们都创建了一个额外的文件夹,到目前为止,我使用的最好的一个是

当前我正在使用的(不是我的代码,是从另一个线程获得的)

这将创建一个目录:“D:\share\Backup\Data-04-17”,正如您所见,它不适用于当天。有人能帮我修改一下,让这一天顺利吗

编辑:示例的日期应为2017年4月23日或2017年4月23日

编辑2:根据建议更改令牌,请参见下文了解工作BAT

    REM Create a folder using the current date.  If such a folder already exists, append a number to make it unique.
@ECHO OFF
for /F "tokens=1-5 delims=/ " %%i in ('date /t') do (
set Day=%%i
set Month=%%j
set Year=%%k
)

set DataPath=D:\share\Backup\Data %day%-%month%-%Year%
set /a inx=1

:LOOP
IF NOT EXIST "%DataPath%" GOTO CREATE
set DataPath=D:\share\Backup\Data %day%-%month%-%Year% (%inx%)
set /a inx+=1
if %inx% gtr 9 goto :END REM Eh, giving up.
goto LOOP
:END

:CREATE
md "%DataPath%"
:END

不,先生由于创建日期缺少月份idunno,因此缺少的是年份

如果不知道你的日期格式是什么,指导是很困难的。也许更改您的
令牌
会有所帮助。目前,令牌2分配给
%%i
,3分配给
%%j
,4分配给
%%k
。i使用
tokens=1-5
并观察哪些元素被分配给
%%i
%%m
使用
echo%%i+%%j+%%k+%%l+%%m
,这将允许您选择所需的零件

path
是一个逻辑变量,但作为变量名的选择非常糟糕,因为
path
是一个保留变量,它告诉windows在哪里可以找到当前目录中找不到的可执行文件

    REM Create a folder using the current date.  If such a folder already exists, append a number to make it unique.
@ECHO OFF
for /F "tokens=1-5 delims=/ " %%i in ('date /t') do (
set Day=%%i
set Month=%%j
set Year=%%k
)

set DataPath=D:\share\Backup\Data %day%-%month%-%Year%
set /a inx=1

:LOOP
IF NOT EXIST "%DataPath%" GOTO CREATE
set DataPath=D:\share\Backup\Data %day%-%month%-%Year% (%inx%)
set /a inx+=1
if %inx% gtr 9 goto :END REM Eh, giving up.
goto LOOP
:END

:CREATE
md "%DataPath%"
:END