2013-10-22 48 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

相關問題