import winpty, time, sys, threading
p = winpty.PtyProcess.spawn(sys.argv[3], cwd=sys.argv[1])
buf=[]
def reader():
    try:
        while True:
            d=p.read(8192)
            if d: buf.append(d)
            else: time.sleep(0.02)
    except Exception:
        pass
threading.Thread(target=reader, daemon=True).start()
time.sleep(3.0)
try: p.terminate(force=True)
except Exception: pass
raw="".join(buf)
open(sys.argv[2],"w",encoding="utf-8",errors="backslashreplace").write(raw)
print("captured chars:", len(raw))
