2013-10-22 45 views
1

我试图创建一个小脚本,允许我将文件从一台服务器复制/删除到另一台服务器。以年份 10-oct 日期格式创建一个目录

最终的结果应该有文件夹\\\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 

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

+0

也许通过电源外壳更容易... – SparK

+0

提示是学习批处理文件编程。祝你好运!! Powershell应该更容易编程,但配置怎么样?我想没有多少,因为它只需要一些权限。 –

回答

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%" 
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") 

这应该工作,如果没有评论。

+0

如果这对你有帮助,请标记为正确答案。 – nephi12

相关问题