bat文件创建一个带日期的文件夹是不是加了天?

Bat file to create a folder with the date is not adding the day?

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

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

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=2-5 delims=/ " %%i in ('date /t') do (
set Day=%%j
set Month=%%i
set Year=%%k
)

set Path=D:\share\Backup\Data %Year%-%Month%-%Day%
set /a inx=2

:LOOP
IF NOT EXIST "%Path%" GOTO CREATE
set Path=%~1\%Year%-%Month%-%Day% (%inx%)
set /a inx+=1
if %inx% gtr 9 goto :END REM Eh, giving up.
goto LOOP
:END

:CREATE
md "%Path%"
:END

这将创建此目录:"D:\share\Backup\Data -04-17" 如您所见,它不适用于当天。谁能帮我修改一下,这样一天就可以了。

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

编辑 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

不知道您的日期格式是什么,很难指导。也许更改 tokens 可能会有所帮助。目前,令牌 2 分配给 %%i,3 分配给 %%j,4 分配给 %%k。 Itry using tokens=1-5 and observed which elements get assigned to %%i..%%m using echo %%i+%%j+%%k+%%l+%%m 这将允许你 select 你想要的部分。

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