Problem: Batch files exit after the first Python command
When attempting to create a batch file to run a Python script multiple times, the batch file exits after only the first command is performed. The following is a code sample of a batch file that exhibits this behavior:
@echo Run my Python script "%PROGRAMFILES%\ArcGIS\Pro\bin\Python\Scripts\propy" myscript.py @echo Run my Python script AGAIN "%PROGRAMFILES%\ArcGIS\Pro\bin\Python\Scripts\propy" myscript.py @echo FinishedIn the sample above, the batch file only runs up to the second line that performs only the first myscript.py, and ignores the second call.
In the code sample, the command, call, is not used. This results in the script being called as a standalone .py file to be executed instead of as a function in a batch script.
Solution or Workaround
To ensure the continuation of a Python batch script regardless of the account, and to avoid confusion about which version of Python is used in mixed environments, 64-bit or 32-bit, it is recommended to run the Python executable using the command prompt with the name of the Python file as an argument, as shown in the following example.
C:\Python27\ArcGIS10.5\python.exe "E:\My Scripts\DoConversion.py" c:\gisWork\gdb.mdb\counties 10A common workflow is to have the task scheduler run a .bat file that in turn runs the script with arguments. The contents of the .bat is the single command line shown above. However, when using batch files to run multiple Python scripts, it is important to understand the syntax of the batch files. Adding call before each Python command ensures the batch file is running after the Python script exits, successfully running multiple Python scripts as intended. The following script is an example of a working script.
@echo Run my Python script call "%PROGRAMFILES%\ArcGIS\Pro\bin\Python\Scripts\propy" myscript.py @echo Run my Python script AGAIN call "%PROGRAMFILES%\ArcGIS\Pro\bin\Python\Scripts\propy" myscript.py @echo Finished
- ArcGIS for Desktop: A quick tour of batch processing
- ArcGIS for Desktop: Batch processes
- ArcGIS Blog: Scheduling a Python script or model to run at a prescribed time
Last Published: 9/22/2017
Article ID: 000015230
Software: ArcMap 10.4.1, 10.4