蝙蝠文件创建一个日期不添加日期的文件夹?

时间:2017-04-23 08:38:23

标签: batch-file directory-structure

所以我试图让这个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

1 个答案:

答案 0 :(得分:1)

不,先生。由于创建日期缺失 -month- idunno

,因此缺失

在不知道您的日期格式是什么的情况下,指导很困难。也许更改tokens可能有所帮助。目前,令牌2分配给%%i,3分配给%%j,分配给%%k。使用tokens=1-5进行测试并观察使用%%i将哪些元素分配给%%m .. echo %%i+%%j+%%k+%%l+%%m,这样您就可以选择所需的部分。

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