python - 如何将批处理命令的结果存储在哪里?
问题描述
跑步
WHERE python
在我的 bat 脚本中给了我两个文件路径到两个不同的 python 实例
C:~\AppData\Local\Programs\Python\Python38\python.exe
C:~\AppData\Local\Microsoft\WindowsApps\python.exe
我如何将第一个存储在变量中。我目前正在尝试
FOR /f %%p in ('where python') do SET PYTHONPATH=%%p
但是,它只给了我第二个文件路径。
我将如何获得第一条路径?
解决方案
我会这样做:
@For %%G In (python.exe) Do @Set "PYTHONPATH=%%~$PATH:G"
where.exe
将搜索下的每个位置%PATH%
,并输出所有结果,这不是您想要的,因此我不提倡在这种特殊情况下使用它的原因。
然而%~PATH:
,修饰符将输出它找到的第一个结果。
这也是始终确保您的 %PATH% 字符串值按优先级顺序列出的一个很好的理由,而不是盲目地添加新位置而不是附加它们。
要完全回答您的具体问题,如果您还想使用where.exe
,您只需要一种方法......</p>
- 在第一个结果后停止迭代:
@For /F "Delims=" %%G In ('%SystemRoot%\System32\where.exe python.exe 2^>NUL') Do @Set "PYTHONPATH=%%~G" & GoTo Next
:Next
- 仅在尚未定义变量时定义变量:
@Set "PYTHONPATH="
@For /F "Delims=" %%G In ('%SystemRoot%\System32\where.exe python.exe 2^>NUL') Do @If Not Defined PYTHONPATH Set "PYTHONPATH=%%~G"
推荐阅读
- vhdl - 如何解决闩锁警告?
- ios - 单击 TextView 中的某个字符串时如何执行 segue?
- vba - 如何自动停用和重新激活多个几何集和对象?
- jenkins - Jenkins 作业暂停 15 分钟
- css - 你需要下载webkit吗?
- c# - 如何在对话框中调用瀑布对话框 - Azure Bot builder
- html - css动画中的换行符
- typescript - 打字稿中索引签名对象类型的类型安全合并
- python-3.x - 如何解决时间数据与格式 '%m/%d/%Y %H:%M:%S' 不匹配
- compression - 如何将 FreeArc 压缩与 Inno Setup 结合使用?