WMIC OS GET localdatetime

Cognos Controller 10.4
Microsoft Windows 2016 server
Oracle 12c database

How write the date to a text file to keep a log of a batch file. For example we use a SQL COMMAND to optimize the controller database from the outside.

Use the WMIC function in new Windows to get the date, this will work independent on of the region setting on the windows server.

Create a BAT file with this contents:
REM —- Start of file —-
@echo off
setlocal enableextensions disabledelayedexpansion

REM only get the time – date is found in wmic command
REM SET MyDate=%date:~10,4%-%date:~4,2%-%date:~7,2%
set MyTime=%time:~0,2%:%time:~3,2%:%time:~6,2%

REM Get date and time in YYYYMMDDhhmmss format for filename
for /f “tokens=2 delims==.” %%a in (‘wmic OS Get localdatetime /value’) do set “dt=%%a”
REM put underscore in the middle of date and time stamp
set CTRLTIME=%dt:~0,8%_%dt:~8,6%

set MyDate=%dt:~0,8%

set FilePath= D:\script\logs\Controller_%CTRLTIME%.log
echo %MyDate% %MyTime% “Optimization Started” >> %FilePath%

REM below is call on a oracle command, then in the sql statement will call a PRC_ANALYZE_SCHEMA process.
sqlplus /nolog @”D:\script\db_optimize.sql”
REM timeout 10

REM get new time values when it was started
set MyTime=%time:~0,2%:%time:~3,2%:%time:~6,2%

echo %MyDate% %MyTime% “Optimization finished” >> %FilePath%
REM —- END of FILE —-

Run optimize of controller database schema every week.

The SQL file should contain something like this, please test before using;

More information: