У кого-нибудь были недавние требования к программированию автоматических задач в стиле DOS Batch на Windows?
У меня есть некоторая автоматизация, и я бы предпочел не сидеть и писать кучу файлов .BAT в Блокноте, если есть лучший способ автоматизировать эти задачи: в основном перемещение файлов при определенных условиях даты и времени, а также запуск приложений Windows до и после перемещения файлов.
Я думаю о IDE, в которой все команды DOS «доступны» для редактора с правильной проверкой синтаксиса параметров. Есть ли что-нибудь подобное, или я должен решать эту проблему с помощью чего-то другого, кроме файлов .BAT?





Попробуйте Python.
Windows 98SE и выше имеют встроенный Windows Script Host, который позволяет вам использовать VBScript для автоматизации задач (см., Например, http://www.windowsdevcenter.com/pub/a/oreilly/windows/news/vbscriptpr_0201.html).
Для простой автоматизации Windows, помимо файлов BAT, стоит обратить внимание на VBScript и Powershell. Если вам интересно, с чего начать в первую очередь, я бы начал с VBScript + Windows Task Scheduler. Копирование файла с помощью VBS может быть очень простым:
Dim objFSO
Set objFSO = CreateObject ("Scripting.FileSystemObject")
If objFSO.FileExists("C:\source\your_file.txt") Then
objFSO.CopyFile "C:\source\your_file.txt", "C:\destination\your_file.txt"
EndIf
vbscript / WSH - это на самом деле то, что Microsoft хочет, чтобы вы использовали - к сожалению, я написал несколько из них, и это неприятно -
Я полностью согласен с Микаэлем - если вы знаете, в каких системах будут выполняться сценарии, и можете установить на них интерпретаторы, используйте язык сценариев, например Python или Ruby.
Конечно, это зависит от того, какой тип автоматизации вам нужно сделать - если вы возитесь с настройками ОС или Active Directory, используйте WSH, но для обычного управления файлами используйте Python или Ruby.
Я бы рекомендовал Python вместо Ruby в качестве языка сценариев Windows. Поддержка Windows в Python гораздо более зрелая, чем в Ruby.
Определенно PowerShell. Это новая оболочка Microsofts с множеством интересных возможностей и большой расширяемостью.
Я лично использую Python или PowerShell для такого рода задач.
Здесь есть IDE для Powershell:
Хотя это не совсем то, что вы ищете, я бы выбрал Perl. В отсутствие графического интерфейса Perl позволит вам быстро выполнить вашу задачу, а его «клеящие» функции будут полезны в будущих задачах, которые могут у вас возникнуть. Кроме того, если однажды вам придется делать аналогичные вещи в другой ОС (не Windows), PowerShell может быть недоступен, и вам пригодятся ваши знания Perl.
В остальном ближайший брат Perl под Windows - это определенно PowerShell.
Я использую для этого AutoIt, поскольку PowerShell по умолчанию доступен не на всех машинах. AutoIt предлагает простой язык с большим количеством кода по умолчанию, который вы можете использовать повторно. AutoIt может компилироваться в .exe.
Я не уверен, что такое «Перемещение файлов при определенных условиях», но однажды я написал Скрипт Robocopy Controller (с использованием AutoIt), с помощью которого вы можете настроить сценарий копирования, который будет передаваться в Robocopy.exe («надежное копирование файлов» - программа копирования который можно загрузить с сайта Microsoft и по умолчанию входит в состав Windows Vista вместо xcopy). Может быть, этот мой бесплатный скрипт вам поможет.
На самом деле он не компилируется, он просто добавляет файл AutoIt в .exe, как и некоторые программы сжатия.