您的位置:首页 > 其它

批处理更新essbase中替代变量

2013-04-19 09:40 225 查看
思路:

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 偶尔会无法触发)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: