所以我试图让这个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
答案 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在哪里找到当前目录中找不到的可执行文件。