Quand je lance ça
file_path = convertfilepath("$temp/x.bat","windows");
savetextfile(file_path, "dir\!n");
rp = RunProgram( Executable( "cmd.exe" ),
Options( {"/C", file_path} ),
ReadFunction("text") // returns all text
);il semble que le répertoire de travail pour l'exécution du fichier bat soit mon répertoire de bureau. Je pense que python utilisera également le répertoire de travail pour trouver le nom de fichier sur la ligne de commande. L'utilisation du nom de chemin complet semble un bon choix.
https://superuser.com/questions/396394/how-do-i-set-an-executables-working-directory-via-the-command-line-prior-to-ex suggère que vous pouvez spécifier le répertoire de travail dans votre commande start :
START /D c:\temp notepad.exe
J'ai un problème qui devrait être lié aux appels imbriqués que je fais.
ExécuterProgram() --> cmd --> Python
Le fichier bat suivant fonctionne parfaitement bien.
set JMP_PYTHON_PTH=%UserProfile%\miniconda_JMP\
CALL %JMP_PYTHON_PTH%\Scripts\activate.bat %JMP_PYTHON_PTH%
start /B /wait "" python test.py
Et pourtant, lors de l'utilisation de RunProgram(), le code échoue sauf si j'ajoute le chemin absolu au fichier Python (test.py --> 'C:/a/b/c/test.py')
ClearLog();
file_path = ConvertFilePath( "./tests/run_python_installation_test.bat", windows);
rp = RunProgram( Executable( "cmd.exe" ),
Options( {"/C", file_path} ),
ReadFunction("text") // returns all text
);L'erreur que j'obtiens, encore une fois uniquement si le chemin absolu n'est pas donné, est la suivante.
(base) C:\WINDOWS\system32>start /B /wait \!"\!" python test.py
python: can't open file 'test.py': [Errno 2] No such file or directory