това е така, защото писането на <име на файл в командния ред принуждава обвивката да изпрати съдържанието на файла c:\backups\data.sql в стандартния вход на вашата програма. Предаването на частта след '<' в аргумента не е правилно, защото трябва да захраните stdin на вашия изпълним файл със съдържанието на файла. За да направите пренасочване stdin/stdout, можете да се обърнете към този въпрос:
Пренасочване на stdin и stdout, където stdin се затваря първи
и ще изпратите съдържанието на вашия файл data.sql в потока stdin.