从环境名称获取conda环境路径

问题描述 投票:0回答:1

嗨,我正在尝试从名称中获取 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"
batch-file findstr
1个回答
0
投票

我假设您只对带有

*
的项目感兴趣,并且它在请求中只出现一次:

作为命令行:

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的建议。

© www.soinside.com 2019 - 2024. All rights reserved.