嗨,我正在尝试从名称中获取 conda env 的路径:
conda info --envs
我得到:
base C:\ProgramData\Miniconda3
RPDA * C:\ProgramData\Miniconda3\envs\RPDA
test310 C:\ProgramData\Miniconda3\envs\test310
RPDA2 C:\Users\u608771\.conda\envs\RPDA2
所以如果我这样做
conda info --envs | findstr /c:"RPDA"
我得到:
RPDA * C:\ProgramData\Miniconda3\envs\RPDA
RPDA2 C:\Users\u608771\.conda\envs\RPDA2
我怎样才能得到路径(如果存在则忽略“*”)?:C:\ProgramData\Miniconda3 nvs\RPDA
我如何将它分配给一个变量,比如:
set envpath=conda info --envs | findstr /c:"RPDA"
我假设您只对带有
*
的项目感兴趣,并且它在请求中只出现一次:
作为命令行:
for /f "usebackq tokens=1,2,*" %a in (`conda info --envs ^| findstr /c:"*"`) do @set envpath=%c
echo %envpath%
在批处理脚本中,您必须将
%a
=> %%a
@echo off
for /f "usebackq tokens=1,2,*" %%a in (`conda info --envs ^| findstr /c:"*"`) do @set envpath=%%c
编辑:当您选择保留模式 'RPDA 的所有行时,这里是一个扩展解决方案,它将第一列中的名称作为变量名称的一部分:
@echo off
for /f "usebackq tokens=1,2,*" %%a in (`conda info --envs ^| findstr /c:"RPDA"`) do @(
if "%%b" == "*" (
set RESULT_%%a=%%c
) else (
set RESULT_%%a=%%b
)
)
查看结果类型
set "RESULT_"
编辑:添加了
;
-修复和set
-用户Mofi的建议。