Мое требование может показаться немного странным.Чтение нескольких файлов в Windows динамически динамически
У меня есть список файлов для чтения, например: FILE1.TXT, file2.txt, file3.txt, File4.txt
Кроме того, наличие процесса ETL для выполнения на каждом из этих файлов. Тем не менее, вход в этот процесс ETL принимает только имя файла «File.txt» вместо «File1.txt, File2.txt..etc ..»
Из-за ограничений по размеру процесс ETL не принимает больше Файл «File.txt», объединив все «File1.txt, File2.txt..etc ..». Это делает бит сложным здесь.
Итак, одним из способов является запуск процесса ETL в цикле и подача его с помощью «File.txt» на каждой итерации.
Другими словами, во-первых, «File1.txt» переименовывается в «File.txt» и выполняет процесс ETL и завершает этот процесс, «File2.txt» готов к переименованию в «File.txt», и он продолжает до наличия файла.
ли партия Windows, может быть разработана для достижения т.е.
-Store всех доступных имен файлов (file1, File2) в временном файле -Первого выполнения Пакетного сценария переименовывает «FILE1.TXT» или один который сначала входит в файл temp в файл File.txt.
------ Тогда я буду выполнять процесс ETL --- [Это невозможно закодировать в пакетном сценарии]
После заканчивается процесс ETL, я вспоминаю тот же пакетный сценарий который потенциально должен указывать на второй файл в temp и переименовывать из «File2.txt» в «File.txt» и продолжается до конца строки в временном файле.
Я думаю, что «задержка» в пакетном скрипте не будет идеальной, поскольку сроки выполнения ETL не могут быть предсказаны.
Ожидая ваших ценных мыслей
Спасибо.
Я стараюсь сделать так просто, насколько это возможно. -Это должно быть разработано в сценариях Windows .bat. У меня нет сценария powershell. Только базовая версия .bat. :(
первый шаг: - Создать TempFileList файл со всеми .txt файлов в определенном каталоге
второй шаг: - Создание командного файла а) принимает входные данные из файла линии TempFileList по линии б) принимает 1-е имя файла из файла TempFileList (File1.txt) и переименовывает его в File.txt
3-й шаг: - После завершения 2b пакетный скрипт должен дождаться наличия полной версии файла [Примечание: - .complete file будет доступный только после успешного запуска стороннего приложения, то есть ETL в этом контексте)
4-й шаг: - После получения. Полного файла с шага 3 скрипт должен заглянуть во второе имя файла из файла TempFileList и выполнить переименование и т. Д.
Шаги 2,3,4 должны выполняться в цикле и заканчиваться до тех пор, пока не будут обработаны все имена файлов в файле TempFileList.
Да, это было бы легко сделать. Цикл в пакетном файле, чтение имен файлов из временного файла или получение их динамически не является проблемой. Он может приостановить, чтобы ждать ввода пользователем, чтобы продолжить следующий файл. Но каков ваш вопрос? – soja
@soja Я отредактировал исходное сообщение с попыткой сделать требования максимально ясными. Пожалуйста, посмотрите –
Ну, вы сделали достойную работу, изложив свои требования, но Stack Overflow на самом деле не является службой написания кода. Я предлагаю вам попробовать что-то, и если он не работает, напишите, что вы пробовали, и спросите, как его исправить. Вот несколько советов. Шаг 1 и 2: используйте 'FOR %% a in (папка \ *. Txt) do (echo do stuff с" %% a "здесь)'. Это ваша петля. Вам не нужен временный файл. Вы можете использовать 'pause' для ожидания вручную, или вы можете использовать' IF NOT EXIST% ~ na.complete' и 'GOTO: label' для ожидания. Это начало. Попробуйте 'HELP command', чтобы увидеть все параметры. – soja