Exécutez un script Python à partir d'un fichier batch. Le traitement principal est effectué par un script Python. Le lot prend un fichier ou un dossier et le transmet à un script Python.
dossier runBatPy ┣ ・ runPythonScript.bat ┗・PythonScript.py Placez PythonScript.py au même emplacement que runPythonScript.bat à exécuter.
cd /d %~dp0
C:\Python27\python.exe PythonScript.py %*
cd
pause
Prenez des fichiers, etc. et transmettez leurs chemins à PythonScript. Si vous ne lancez rien, vous n'obtiendrez pas d'erreur.
cd /d %~dp0
Faites du répertoire courant le répertoire du fichier batch exécuté.
C:\Python27\python.exe PythonScript.py %*
De gauche à droite
C:\Python27\python.exe
Je pense qu'il y a des moments où la variable d'environnement n'est pas définie ou que vous ne voulez pas la changer, alors passez-la directement.
PythonScript.py
Fichier de script que vous souhaitez exécuter en python
%*
Vous pouvez maintenant voir tous les chemins des fichiers et dossiers glissés et déposés dans runPythonScript.bat.
Je le transmets à PythonScript.py.
À part % *
, vous pouvez voir ce que vous avez reçu avec% 1 à% 9
, mais cette méthode ne peut en voir que neuf.
C:\Python27\python.exe PythonScript.py %* %IN%
Cela transmettra également la valeur% IN% à PythonScript.py.
import sys
if __name__ == "__main__":
param = sys.argv
for p in param:
print p
if __name__ == "__main__":
Traiter à l'intérieur de l'instruction if uniquement lorsqu'il est exécuté en tant que fichier script.
sys.argv
argv [0] est le nom du script
Après cela, le chemin passé par «% *» est inclus.
Cité à partir de la référence Python 27
Une liste d'arguments de ligne de commande passés au script Python. argv [0] est le nom du script, mais qu'il s'agisse d'un chemin d'accès complet ou non dépend du système d'exploitation. Si vous démarrez Python avec -c comme argument de ligne de commande, argv [0] sera la chaîne'-c '. Si vous démarrez Python sans nom de script, argv [0] sera une chaîne vide. Pour parcourir la liste des fichiers spécifiés par les arguments d'entrée standard ou de ligne de commande, consultez le module fileinput.
Recommended Posts