Is there a direct bus from Battambang to Bangkok?

I'm sure some guesthouse can arrange some kind of through-ticket that connects with the usual scam buses.

Theres a bus that runs PP to BKK every day , thats run by capitol bus tours and drops in Khao Sarn road.....maybe you can jump on that when it goes thru Battambang.
Otherwise cheap option is bus to Poipet "bus station".... then 1000 riel moto to border, jump the border , 5 baht share taxi to Thai bus station and 208 baht bus to Mo chit /Northern bus station.
There is a casino courtesy bus that runs to Lumpini park, Bangkok for 100Baht , not sure of times thou.
Avoid the little tourist operation on the Thai side of border that charges 600baht for a bus to Khao sarn road.
The train station is not far from the bus station and the 5 baht share taxi can drop you there too