Windows batch scripting: Showing date, time and all output in logs

batch-file, date, logging, time, windows

Solution

Adding the date and time is easy using `%date%` and `%time%`.

You could try to redirect stderr (2) to stdout (&1), perhaps that will capture the missing output.

echo Start: %date% %time% >>log.txt
heroku db:pull --confirm app >>log.txt 2>&1
echo Stop: %date% %time% >>log.txt

Problem

I have made a script that I am going to call using windows scheduler to back up a Ruby on Rails app I have made. When I call the command normally in a command window, the output looks like this ``` C:\Users\admin\Desktop\app>heroku db:pull --confirm app Loaded Taps v0.3.23 Auto-detected local database: postgres://db:pass@127.0.0.1/app?encoding=utf8 Warning: Data in the database 'postgres://db:pass@127.0.0.1/app?encoding=utf8' will be overwritten and will not be recoverable. Receiving schema Schema: 0% | | ETA: --:--:-- Schema: 20% |======== | ETA: 00:00:21 Schema: 40% |================ | ETA: 00:00:18 Schema: 60% |========================= | ETA: 00:00:12 Schema: 80% |================================= | ETA: 00:00:05 Schema: 100% |==========================================| Time: 00:00:29 Receiving indexes schema_migrat: 0% | | ETA: --:--:-- schema_migrat: 100% |==========================================| Time: 00:00:05 users: 0% | | ETA: --:--:-- users: 50% |===================== | ETA: 00:00:05 users: 100% |==========================================| Time: 00:00:10 Receiving data 5 tables, 1,000 records table1: 100% |==========================================| Time: 00:00:00 table2: 100% |==========================================| Time: 00:00:00 table3: 100% |==========================================| Time: 00:00:00 table4: 100% |==========================================| Time: 00:00:00 table5: 100% |==========================================| Time: 00:00:01 Resetting sequences ``` Here is my .bat: ``` heroku db:pull --confirm app >> log.txt ``` If I run this twice, this is the output that goes into a file, log.txt ``` Loaded Taps v0.3.23 Auto-detected local database: postgres://db:pass@127.0.0.1/webapp_development?encoding=utf8 Warning: Data in the database 'postgres://db:pass@127.0.0.1/webapp_development?encoding=utf8' will be overwritten and will not be recoverable. Receiving schema Receiving indexes Receiving data 5 tables, 1,000 records Resetting sequences Loaded Taps v0.3.23 Auto-detected local database: postgres://db:pass@127.0.0.1/webapp_development?encoding=utf8 Warning: Data in the database 'postgres://db:pass@127.0.0.1/webapp_development?encoding=utf8' will be overwritten and will not be recoverable. Receiving schema Receiving indexes Receiving data 5 tables, 1,000 records Resetting sequences ``` Is there any way to include the exact console output, and also include dates and times of when the script was run? Thanks in advance. UPDATE: ``` Start: 19/10/2012 12:08:04.90 Schema: 0% | | ETA: --:--:--Schema: 20% |======== | ETA: 00:00:24Schema: 40% |================ | ETA: 00:00:18Schema: 60% |========================= | ETA: 00:00:13Schema: 80% |================================= | ETA: 00:00:06Schema: 100% |==========================================| ETA: 00:00:00Schema: 100% |==========================================| Time: 00:00:32 schema_migrat: 0% | | ETA: --:--:--schema_migrat: 100% |==========================================| ETA: 00:00:00schema_migrat: 100% |==========================================| Time: 00:00:05 users: 0% | | ETA: --:--:--users: 50% |===================== | ETA: 00:00:05users: 100% |==========================================| ETA: 00:00:00users: 100% |==========================================| Time: 00:00:08 schema_migrat: 0% | | ETA: --:--:--schema_migrat: 7% |== | ETA: 00:00:06schema_migrat: 100% |==========================================| Time: 00:00:00 users: 0% | | ETA: --:--:--users: 3% |= | ETA: 00:00:11users: 100% |==========================================| Time: 00:00:00 projecttechno: 0% | | ETA: --:--:--projecttechno: 6% |== | ETA: 00:00:05projecttechno: 100% |==========================================| Time: 00:00:00 technols: 0% | | ETA: --:--:--technols: 7% |== | ETA: 00:00:05technols: 100% |==========================================| Time: 00:00:00 projects: 0% | | ETA: --:--:--projects: 1% | | ETA: 00:00:54projects: 100% |==========================================| Time: 00:00:00 Loaded Taps v0.3.23 Auto-detected local database: postgres://postgres:a@127.0.0.1/webapp_development?encoding=utf8 Warning: Data in the database 'postgres://postgres:a@127.0.0.1/webapp_development?encoding=utf8' will be overwritten and will not be recoverable. Receiving schema Receiving indexes Receiving data 5 tables, 1,000 records Resetting sequences ```

Original source