【问题标题】:Batch script stops after output conda environment批处理脚本在输出 conda 环境后停止
【发布时间】:2018-10-31 09:43:22
【问题描述】:

我正在尝试编写一个批处理脚本来导出所有可用的 conda evnironments,在互联网上逐个搜索后,我想出了以下内容:

@echo off

conda info --envs > conda_envs.txt

for /f "usebackq tokens=1 delims= " %%a in ("conda_envs.txt") do (
    if not %%a==# conda env export -n %%a > %%a.yml
)

问题是脚本在conda info --envs > conda_envs.txt 之后停止,我尝试在for 循环和export 命令前面添加call,但没有运气。我做错了什么?

【问题讨论】:

  • 有错误信息吗?
  • 不,就好像你已经成功执行了一样,根本没有消息
  • 您缺少右括号 ) 来关闭 for 循环。在添加右括号之前,使用 preset file 进行的测试会因 for 循环而失败。
  • 我有一个理论,但我无法测试它 - 将 call 放在 conda 前面。
  • 感谢您指出缺少的括号,更新了帖子。

标签: windows batch-file cmd anaconda


【解决方案1】:

非常感谢评论部分中的npocmakamichael_heathSomethingDark,我认为缺少括号使调试过程更加困难。通过在conda 前面添加call 确实有帮助!以下是脚本的工作版本:

@echo off

call conda info --envs > conda_envs.txt

for /f "usebackq tokens=1 delims= " %%a in ("conda_envs.txt") do (
    if not %%a==# call conda env export -n %%a > %%a.yml
)

PS:如果不添加conda env export... 之前的第二个call,这也可以。

【讨论】:

    猜你喜欢
    • 2022-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-19
    • 2020-07-13
    • 1970-01-01
    • 2021-07-11
    相关资源
    最近更新 更多