Как создать пакетный файл для запуска всех файлов Python в одном каталоге

У меня есть папка, в которой я храню свои скрипты Python, используемые для резервного копирования конкретной системы. Z:\Системный администратор\Резервные копии системы\Моя система\Сценарии\

Чтобы запустить их все, я хотел бы использовать файл .bat, хранящийся в той же папке, однако у меня нет опыта работы с этими файлами. Мое чтение привело меня к этому решению:

@echo off
start /B python "File one.py"
start /B python "It's another file.py"   

И если я перечислю каждый файл python таким образом, он будет работать так, как я хотел бы. Как я могу запустить все файлы *.py, которые появляются в этой папке, независимо от номера или имени файла?

заранее спасибо

for %%i in (*.py) do start "" /b python "%%i"
Gerhard 13.02.2019 14:54

Спасибо за ваш быстрый ответ. Это запускается каждый по очереди или одновременно?

CatParky 13.02.2019 15:23

Он будет запускаться сразу, один за другим, но не дожидаясь завершения первого. Как вы хотите, чтобы он работал? один раз за другим, ожидая завершения одного или сразу?

Gerhard 13.02.2019 15:31

По одному, пожалуйста. Спасибо за ваш быстрый ответ

CatParky 13.02.2019 15:57

Затем просто добавьте /wait. Нравится for %%i in (*.py) do start "" /b /wait python "%%i"

Gerhard 13.02.2019 16:00

Обратите внимание, что start /b оставляет каждый процесс Python подключенным к консоли со стандартным вводом-выводом, все еще подключенным к нему. Вы можете перенаправить stdin на NUL и stdout/stderr в файл. Кроме того, поскольку Python все еще подключен к консоли, сочетание клавиш Ctrl+Break и закрытие окна приведет к резкому завершению сценария. Вы можете использовать ctypes для установки обработчика управления (SetConsoleCtrlHandler), который в этом случае завершается корректно. Тем не менее, как программист Python, я бы предпочел написать сценарий Python, который использует модуль подпроцесса, а не использовать пакетный сценарий.

Eryk Sun 13.02.2019 21:01

Спасибо, это работает отлично.

CatParky 14.02.2019 10:05
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
8
926
1

Ответы 1

Это возможно с помощью следующего трюка:

@echo off

for %%A IN (*.py) do start /b /wait "" python "%%~fA"

Примечание. Для более старых версий Windows (до Windows 10) используется порядок конкретный. , См. здесь.

Не желая показаться грубым, это почти наверняка дубликат тысяч ответов на этом сайте. Пожалуйста, не публикуйте подобные ответы только для того, чтобы заработать очки репутации, это не поможет никому, кроме вас самих, и мы здесь не для этого.

Compo 13.02.2019 14:59

@CatParky это было адресовано человеку, ответившему на вопрос.

Gerhard 13.02.2019 15:30

Как уже упоминал @eryksun, порядок важен и заслуживает упоминания. Start также обычно ожидал, что первая строка в двойных кавычках будет заголовком окна. Также было бы неплохо, если бы вы упомянули, помог ли кто-то еще в комментарии дать вам предоставленный ответ. Простое изменение кода в вашем ответе не делает ответ действительным для принятия. Мы здесь, чтобы помогать людям, а не публиковать то, что можем как можно быстрее, просто для того, чтобы завоевать репутацию.

Gerhard 13.02.2019 22:02

Другие вопросы по теме