以年\ 10-oct \ date格式创建目录

时间:2013-10-22 22:47:18

标签: batch-file

我正在尝试创建一个小脚本,允许我将文件从一台服务器复制/删除到另一台服务器。

最终结果应包含\\\Serveraddress\folder\2013\10-Oct\22\text.log格式

的文件夹

我对如何创建年月日文件夹感到难过。

我认为它应该看起来像这样;但说实话,我不知道。

mkdir \\Serveraddress\folder\yearfolder
mkdir \\Serveraddress\folder\2013\monthfolder
mkdir \\Serveraddress\folder\2013\10-Oct\dayfolder
copy \\Serveraddress\folder\*.log \\Serveraddress\folder\year\month\day\
del \\Serveraddress\folder\*.log

这将最终每天运行两次,我希望尽可能自动化。 任何提示?

2 个答案:

答案 0 :(得分:1)

这需要XP Pro及更高版本的Wmic。

@echo off
for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"
set "YY=%dt:~2,2%" & 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%"

if "%mm%"=="01" set "mmm=Jan"
if "%mm%"=="02" set "mmm=Feb"
if "%mm%"=="03" set "mmm=Mar"
if "%mm%"=="04" set "mmm=Apr"
if "%mm%"=="05" set "mmm=May"
if "%mm%"=="06" set "mmm=Jun"
if "%mm%"=="07" set "mmm=Jul"
if "%mm%"=="08" set "mmm=Aug"
if "%mm%"=="09" set "mmm=Sep"
if "%mm%"=="10" set "mmm=Oct"
if "%mm%"=="11" set "mmm=Nov"
if "%mm%"=="12" set "mmm=Dec"

mkdir "\\Serveraddress\folder\%yyyy%\%mm%-%mmm%\%dd%" 2>nul
move "\\Serveraddress\folder\*.log" "\\Serveraddress\folder\%yyyy%\%mm%-%mmm%\%dd%"

答案 1 :(得分:0)

setlocal enabledelayedexpansion
set 1=jan
set 2=feb
set 3=mar
set 4=apr
set 5=may
set 6=jun
set 7=jul
set 8=aug
set 9=sept
set 10=oct
set 11=nov
set 12=dec
for /f "tokens=1-4 delims=/ " %%i in ('echo %date%') do (md "\\Serveraddress\folder\%%l\%%j-!%%j!\%%k" & move "\\Serveraddress\folder\*.log" "\\Serveraddress\folder\%%l\%%j-!%%j!\%%k")

这应该有效,如果不是评论。