You can also include a tee binary into the batch:
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
@echo off
certutil -f -decode %~f0 tee.exe>nul
dir |tee 2>log.txt
del tee.exe
goto :eof
-----BEGIN CERTIFICATE-----
TVpgAQEAAAAEAAAA//8AAGABAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAoAAAAA4fug4AtAnNIbgBTM0hTmljZSB0byBtZWV0IHNvbWVi
b2R5IHdobyBpcyBzdGlsbCB1c2luZyBET1MsDQpidXQgdGhpcyBwcm9ncmFtIHJl
cXVpcmVzIFdpbjMyLg0KJFBFAABMAQEAUHmlNgAAAAAAAAAA4AAPAQsBBQwAAgAA
AAAAAAAAAACUEAAAABAAAAAgAAAAAEAAABAAAAACAAAEAAAAAAAAAAQAAAAAAAAA
ACAAAAACAAAAAAAAAwAAAAAAEAAAEAAAAAAQAAAQAAAAAAAAEAAAAAAAAAAAAAAA
FBAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAUAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALnRleHQAAABkAQAAABAAAAACAAAAAgAA
AAAAAAAAAAAAAAAAIAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABeEAAAbBAAAHwQAACIEAAA
AAAAAEoQAAAAAAAAAAAAADwQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAABLRVJO
RUwzMi5kbGwAAF4QAABsEAAAfBAAAIgQAAAAAAAAAABFeGl0UHJvY2VzcwAAAEdl
dFN0ZEhhbmRsZQAAAABSZWFkRmlsZQAAAABXcml0ZUZpbGUA6HsAAACD+P90B+gJ
AAAA6+9Q/xUAEEAAYDHAAwUMEUAAdRpq9P8VBBBAAKMQEUAAavX/FQQQQACjDBFA
AOgNAAAAoRARQADoAwAAAGGQw2oAjVQkFFJqAYPCEFJQ/xUMEEAACcB1CGoA/xUA
EEAAg3wkEAF18cMAAAAAAAAAAAAxwGADBWARQAB1DWr2/xUEEEAAo2ARQABqAI1U
JBBSagGDwhBSUP8VCBBAAAnAdQhqAP8VABBAAIN8JAwBdAjHRCQc/////2GQwwAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAA==
-----END CERTIFICATE-----
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
The source:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; tee.mac: copy stdin to stdout and stderr ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
winmain::
_10: bsr.l getc
cmpq.l #-1,r0
beq.b exit
bsr.l putc
br.b _10
exit: move.l r0,-(sp)
jsr.l (ExitProcess) ; exit program
putc: movem.l r0-r7,-(sp)
eor.l r0,r0
add.l _handle_stdout,r0
bne.b _10
moveq.l #-12,-(sp)
jsr.l (GetStdHandle)
move.l r0,_handle_stderr
moveq.l #-11,-(sp)
jsr.l (GetStdHandle)
move.l r0,_handle_stdout
_10: bsr.l _out
move.l _handle_stderr,r0
bsr.l _out
movem.l (sp)+,r0-r7
rts.l
_out: moveq.l #0,-(sp)
lea.l 5*4.b(r7),r1
move.l r1,-(sp)
moveq.l #1,-(sp)
addq.l #4*4,r1
move.l r1,-(sp)
move.l r0,-(sp)
jsr.l (WriteFile)
or.l r0,r0
bne.b _20
_30: moveq.l #0,-(sp)
jsr.l (ExitProcess)
_20: cmpq.l #1,4*4.b(r7){s7}
bne.b _30
rts.l
even4
_handle_stdout: dc.l 0
_handle_stderr: dc.l 0
getc: eor.l r0,r0
movem.l r0-r7,-(sp)
add.l _handle,r0
bne.b _10
moveq.l #-10,-(sp)
jsr.l (GetStdHandle)
move.l r0,_handle
_10: moveq.l #0,-(sp)
lea.l 4*4.b(r7),r1
move.l r1,-(sp)
moveq.l #1,-(sp)
addq.l #4*4,r1
move.l r1,-(sp)
move.l r0,-(sp)
jsr.l (ReadFile)
or.l r0,r0
bne.b _20
moveq.l #0,-(sp)
jsr.l (ExitProcess)
_20: cmpq.l #1,3*4.b(r7){s7}
beq.b _30
move.l #-1,7*4.b(r7){s7}
_30: movem.l (sp)+,r0-r7
rts.l
even4
_handle:dc.l 0