Normally I would do something like this by specifying a full path to python, that loads the correct environment and in fact it works perfectly when run directly from a cmd or bash shell. For example here is my condarun.bat file and my condarun.py file.
condarun.bat
C:\Users\bwilson\AppData\Local\ESRI\conda\envs\arcgis_tools\python C:\Users\bwilson\source\repos\arcgis_tools\condarun.py
condarun.py
import sys
with open('C:/TEMP/tmpout.txt', 'w') as fp:
fp.write(sys.version + '\n')
fp.writelines([p + '\n' for p in sys.path])
print('python ran')
exit(0)
The output file C:/Temp/tmpout.txt has the expected text, here is one line for example. The important thing is that it's loading my arcgis_tools environment correctly
C:\Users\bwilson\AppData\Local\ESRI\conda\envs\arcgis_tools\lib\site-packages\future-0.18.2-py3.7.egg
I ran a bunch of tests this morning, every way I could think of to get it to run my own python environment, and every time, they substitute their own when I run inside ArcGIS Pro. For example,
C:\Program Files\ArcGIS\Pro\bin\Python\envs\arcgispro-py3\lib\site-packages\future-0.18.2-py3.7.egg
Next I tried to bypass it by running a python.exe directly from the "Script Tool" as the Script File and passed in the name of the script as a parameter. Still fails. I tried running cmd.exe and passed in the name of the batch file, this fails because it never completes, just spins.
My conclusion is that Esri is once again preventing from doing what you need to do protecting you.