Hopefully "ScriptingTipsAndTricks" helps you with your batch file or vbscript scripting :-)
[Bottom][Contents][Prev]: LoggedOnLocallyUsers - useful over remote computers[Next]: LOGGING a Whole Scripts Execution to stdout only - progress not seen by user
\->Batch Files->LOGGING a Whole Scripts Execution to STDOUT and FILE - uses tee.exe

[anchor]

The Code for: "LOGGING a Whole Scripts Execution to STDOUT and FILE [uses tee.exe].cmd.txt"

This is the example, a shortcut was installed to this code :

@echo off
::@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
:: $Header:   C:/DBAREIS/Projects.PVCS/Win32/ScriptingTipsAndTricks/EXAMPLE[cmd].LOGGING a Whole Scripts Execution to STDOUT and FILE [uses tee.exe].cmd.txt.pvcs   1.0   29 Jun 2014 12:51:20   USER "Dennis"  $
::@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
setlocal


::--- START: Turns logging on -----------------------------------------------
if "%~1" == "NOWLOGGING" goto NowLogging
    ::--- Remember original parameters --------------------------------------
    set Parm1=%~1

    ::--- Work out where we are logging to ----------------------------------
    cls
    set LogDir=c:\Logs\[CaptureClusterIssueDetails.cmd]
    md "%LogDir%" >nul 2>&1
    for /F "tokens=1,2,3,4 delims=/ " %%i in ('date /T') do set YYYYMMDD=%%l-%%k-%%j&set Day3=%%i
    set HHMMSSSS=%time::=_%
    set LogFile=%LogDir%\%YYYYMMDD% (%DAY3%) @ %HHMMSSSS% - %COMPUTERNAME%.txt
    echo LOGGING TO: "%LogFile%"

    ::--- Start logging -----------------------------------------------------
    cmd.exe /c ""%~0" "NOWLOGGING" 2>&1 | tee.exe "%LogFile%""
    ::%0 "NOWLOGGING" > "%LogFile%" 2>&1

    ::--- Finished noth passes ----------------------------------------------
    goto :EOF
:NowLogging
echo Now logging...









:: ===============================================================================================
:: http://technet.microsoft.com/en-us/library/cc780572(v=ws.10).aspx#w2k3tr_scl_tools_xliq
:: ===============================================================================================





::--- Look at Cluster -------------------------------------------------------
call :EXEC cluster.exe resource
call :EXEC NET.exe SHARE

::--- http://support.microsoft.com/kb/961657 (and all services) -------------
call :EXEC SC.EXE query srv
call :EXEC SC.EXE query

::--- Look at Network -------------------------------------------------------
call :EXEC ping.exe APPAU182FRM209
call :EXEC ping.exe max.anz
call :EXEC dir M:\
call :EXEC dir N:\

::--- Look at CPU/Processes -------------------------------------------------
set CpuMonitorPeriod=2000
call :SAYSECTION PV.EXE Process Info (monitor CPU for %CpuMonitorPeriod%ms)
LOG.EXE $NoEOL "PgmName$x09Memory (K)$x09PID$x09PPID$x09Thread Count$x09Start Time$x09"
        LOG.EXE "Elapsed CPU Time$x09Percent CPU$x09User Name$x09Command Line"
        PV.EXE  -o"%%n\t%%mK\t%%i\t%%r\t%%t\t%%d\t%%e\t%%c%CpuMonitorPeriod%%%%%\t%%u\t%%l"
call :EXEC Process.exe
call :EXEC PsList.exe /accepteula
call :EXEC PsList.exe /accepteula -m

call :SAYSECTION All Done...
goto :EOF




::===========================================================================
:EXEC
::===========================================================================
    set CMD=%*
    call :SAYSECTION EXEC: %CMD%
    %CMD%
    goto :EOF

::===========================================================================
:SAYSECTION
::===========================================================================
    TITLE echo %*
    echo.&echo.&echo.
    echo ===========================================================================================================
    echo [%date% %Time%] %*
    echo ===========================================================================================================
    goto :EOF

Please note that that I am not trying to show how great I am by producing batch files 9,000 characters long on one line that no one will understand or be able to debug when they go wrong. I am going out of my way to comment the code and make it verbose so beginners and advanced users will both benefit. I don't claim to be an expert that knows everything, if I'm wrong or make a mistake then please contact me and let me know :-)


Microsoft awarded me an MVP (Most Valuable Professional award) in 2004, 2005, 2006, 2007, 2008 & 2009 for the Windows SDK (Windows Installer) area.Please email me any feedback, additional information or corrections.
See this page online (look for updates)

[Top][Contents][Prev]: LoggedOnLocallyUsers - useful over remote computers[Next]: LOGGING a Whole Scripts Execution to stdout only - progress not seen by user


ScriptingTipsAndTricks© is (C)opyright Dennis Bareis 2003-2008 (All rights reserved).
Sunday September 07 2014 at 12:50pm
Visit ScriptingTipsAndTricks's Home Page
Microsoft awarded me an MVP (Most Valuable Professional award) in 2004, 2005, 2006, 2007, 2008 & 2009 for the Windows SDK (Windows Installer) area.