1

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

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

这最终将每天运行两次,我希望它尽可能自动化。有小费吗?

4

2 回答 2

1

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

@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%"
于 2013-10-23T01:22:31.027 回答
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")

如果没有评论,这应该有效。

于 2013-10-22T23:28:24.630 回答