批處理更新essbase中替代變量

思路:
1.利用批處理生成esscmd,
2.調用esscmd


準備:
創建2個文件夾,一個存放bat文件,一個存放log文件


步驟:
1.創建createUpdateVariable.bat文件,該文件目的是將esscmd封裝在updateVariable.bat中。


createUpdateVariable.bat 內容如下:


@echo off


Rem 取當前系統N天之前的日期
set N=-2
echo   wscript.echo   dateadd("d",%n%,date)   >%tmp%\tmp.vbs   
for   /f   "tokens=1,2,3   delims=-"   %%i   in   ('cscript /nologo  %tmp%\tmp.vbs')   do   (set y=%%i
set m=%%j
set d=%%k)


Rem 設置esscmd日誌文件名中的日期時間格式
set mydate=%Date:~0,4%%Date:~5,2%%Date:~8,2%


if  %Time:~0,2%  LSS 10 set mytime=0%Time:~1,1%%Time:~3,2%_%Time:~6,2%%Time:~9,2%  
if  %Time:~0,2%  GEQ 10 set mytime= %Time:~0,2%%Time:~3,2%_%Time:~6,2%%Time:~9,2%


Rem 設置日誌輸出時間格式
if  %Time:~0,2%  LSS 10 set logtime=0%Time:~1,10%
if  %Time:~0,2%  GEQ 10 set logtime= %Time:~1,11%
::echo %mydate%_%mytime%


Rem 設置年格式
set y=FY%y:~2,2%


Rem 設置月格式
if   %m%   EQU   1   set   m=Jan
if   %m%   EQU   2   set   m=Feb
if   %m%   EQU   3   set   m=Mar
if   %m%   EQU   4   set   m=Apr
if   %m%   EQU   5   set   m=May
if   %m%   EQU   6   set   m=Jun
if   %m%   EQU   7   set   m=Jul
if   %m%   EQU   8   set   m=Aug
if   %m%   EQU   9   set   m=Sep
if   %m%   EQU   10  set   m=Oct
if   %m%   EQU   11  set   m=Nov
if   %m%   EQU   12  set   m=Dec


Rem 設置天格式
if   %d%   EQU   1  set   d=%d%st
if   %d%   EQU   2  set   d=%d%nd
if   %d%   EQU   3  set   d=%d%rd
if   %d%   GEQ   4  set   d=%d%th


Rem 配置用戶服務器信息
set Var_User=admin
set Var_Password=password
set Var_Server=110.135.8.36
set Var_Logpath=H:\Bat\updateEssbaseVariable\log\
set Var_Batpath=H:\Bat\updateEssbaseVariable\bat\
set Var_Year=%y%
set Var_Month=%m%
set Var_Day=%m%%d%


::echo %Var_day%
echo 運行時間:%date%-%logtime%,當前日期:%date%,日期參數:%N%,輸出日期:%Var_Year%,%Var_Day%>>%Var_Logpath%createUpdateVariable.log


Rem 先刪除預先生成的bat
del %Var_Batpath%updateVariable.bat


Rem 將esscmd命令導出到updateVariable.bat


echo. OUTPUT 1 "%Var_Logpath%%mydate%_%mytime%.log";>>%Var_Batpath%updateVariable.bat
echo. LOGIN "%Var_Server%" "%Var_User%" "%Var_Password%";>>%Var_Batpath%updateVariable.bat
echo. updatevariable "AR_CurrentYear" "" "" "" "%Var_Year%";>>%Var_Batpath%updateVariable.bat
echo. updatevariable "AR_CurrentDay" "" "" "" "%Var_Day%";>>%Var_Batpath%updateVariable.bat
echo. logout;>>%Var_Batpath%updateVariable.bat
echo. exit;>>%Var_Batpath%updateVariable.bat
pause


2.調用updateVariable.bat文件
(建議在informatica 中使用 startesscmd 調起 bat,如果直接創建bat文件,內容:startesscmd updateVariable.bat 偶爾會無法觸發)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章