By rail from Istanbul and Ankara via Diyarbakır by Güney Express, which has its last stop in Kurtalan, about 40 km further east from Batman. It departs three times a week. The same train departs from Batman on Mondays, Wednesdays, and Fridays around 9-10AM in the morning on its way back to Istanbul, passing via Diyarbakır about 2 hours from Batman. A bed in a sleeper car costs slightly more than 60 TL between Istanbul and Batman. Credit cards are accepted in Batman station. Trains to Istanbul get really overcrowded during early August because of huge numbers of seasonal workers taking the train to get to hazelnut orchards around Adapazarı and Eastern Marmara on the way short of two hours from Istanbul—the last stop of the trains, and it is impossible to find a ticket further than Diyarbakır during that season without booking/buying the ticket in advance. Even if you can find a ticket, the ride is very uncomfortable, and because of the huge numbers of passengers getting off the train in almost each stop—even if it is in the middle of nowhere, where normally no one ever gets on or off—to replenish their water from station fountains, trains are extremely delayed, and it takes almost two full days to get to Istanbul. Avoid if you are not deadly on budget.
There is also a regional airport near Batman.