2017-10-20 23 views
0

Je veux être capable d'exécuter un script python à partir d'un fichier batch sans connaître le nom du script python.Windows Batch - exécute un script python avec un nom inconnu

Ma situation: J'ai un dossier avec quelques fichiers, un script batch et un script python. Maintenant, je veux que le script batch exécute le script python dans ce dossier. Parfois, j'ai un autre script python dans ce dossier. Donc, je ne peux pas dire le nom du script python, que je veux être exécuté.

Est-il possible de faire une sorte d'expression régulière dans le fichier batch? par exemple:

@echo off 

::change to folders directory 
cd %~dp0  

::run the python script (the file with .py extension) 
python .*.py  
pause 
+0

En plus de faire ceci dans un fichier batch (qui est probablement très lourd), vous pouvez aussi le faire en Python. Créez un script "runner" Python qui listera le contenu d'un répertoire donné, recherchera tous les fichiers ".py" et utilisera "execfile" ou "import" pour l'exécuter. Cependant, vous avez besoin d'une sorte de règle pour distinguer quel script doit être exécuté. – jurez

+0

Est-ce le seul fichier python dans le répertoire courant? – Will

+0

le problème est que j'ai besoin de la commande paus, sinon les scripts ne fonctionnent pas probertly. oui c'est le seul script python dans le répertoire –

Répondre

0
for %%a in (*.py) do (
    python "%%~fa" 
) 

cela exécutera tous les scripts python dans le folder.If que vous voulez plus vous pouvez définir spécifique masque plus de détails sur les noms de fichiers (par exemple script*.py)

+0

GREAT! Exactement ce que je vois. Je vous remercie. –