Я с тем же успехом лучше буду сценарные языки программирования учить, ещё в моём далёком прошлом мы баловались «батниками», это обычные сценарии командной строки (CMD), которые к программированию относятся постольку поскольку. Впрочем, инструкция if есть? Есть. Циклы есть? Есть. Переменные тоже есть. Объектно-ориентированное программирование правда здесь не рассматривается, но так у сценарных языков и «цель» иная.
Здесь не создание, какой-либо программы с 0, игрушку какую-нибудь написать тоже не получится. Файлы *.bat служат для работы с уже написанными программами и выполняют «простые операции», в то же время начинать программировать проще всего именно с сценарных языков.
По сути, сценарный язык BATCH это «прямой путь» к консольному режиму работы. Конечно, фанаты GUI (а графической оболочкой по началу удобнее пользоваться, чем консолью) не поймут смысла в консоли, но одно дело «творческая работа», когда ты каждый день делаешь какое-нибудь новое действие и совсем по другому обстоят дела, когда необходимо выполнять какое-либо действие каждый день (например, делать бэкапы).
На батниках на самом деле реализовались задачи различных сфер и здесь как раз удобство в том и заключается, что не надо быть «крутым программистом», чтобы обеспечить более удобную эксплуатацию компьютера (или ноутбука).
Единственным «недостатком» в этом вопросе, я лично вижу только тот факт, что эти скрипты рассчитаны только на командную строку Windows, несложно догадаться, что на Linux они работать уже не будут.
У Linux свои сценарные языки, но в отличие от Windows (где кроме CMD есть Powershell) в ОС семейства Linux оболочек несколько больше и под каждую из них необходимо знать «свой сценарный язык», но энтузиастов такие трудности не остановят.