批处理更新essbase中替代变量

来源:互联网 发布:11选五任五遗漏数据 编辑:程序博客网 时间:2024/05/22 12:54
思路:
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 偶尔会无法触发)