Quando eseguo questo
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
);sembra che la directory di lavoro per l'esecuzione del file bat sia la mia directory desktop. Penso che Python utilizzerà la directory di lavoro anche per trovare il nome del file sulla riga di comando. Usare il nome completo del percorso sembra una buona scelta.
https://superuser.com/questions/396394/how-do-i-set-an-executables-working-directory-via-the-command-line-prior-to-ex suggerisce di specificare la directory di lavoro nel comando di avvio:
START /D c:\temp notepad.exe
Sto riscontrando un problema che dovrebbe essere correlato alle chiamate nidificate che sto facendo.
EseguiProgramma() --> cmd --> Python
Il seguente file bat funziona perfettamente.
set JMP_PYTHON_PTH=%UserProfile%\miniconda_JMP\
CALL %JMP_PYTHON_PTH%\Scripts\activate.bat %JMP_PYTHON_PTH%
start /B /wait "" python test.py
Eppure, quando si utilizza RunProgram() il codice fallisce a meno che non aggiungo il percorso assoluto al file 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'errore che ottengo, sempre solo se non viene fornito il percorso assoluto, è il seguente.
(base) C:\WINDOWS\system32>start /B /wait \!"\!" python test.py
python: can't open file 'test.py': [Errno 2] No such file or directory