相当于 Windows 中的导出命令

相当于 Windows 中的导出命令

我正在按照文档在 Windows 10 命令提示符中执行一些命令:

export OPENAI_LOG_FORMAT='stdout,log,csv,tensorboard'
export OPENAI_LOGDIR=path/to/tensorboard/data

tensorboard --logdir=$OPENAI_LOGDIR

我发现这export是 Unix 命令,而 Windows 中的等效命令是setx。我执行了前两个命令,当我尝试第三个命令时,$OPENAI_LOGDIR没有正确检测到。有人能帮我找到 Windows 中与这些命令等效的命令吗?

答案1

setx不是exportWindows 中的Linux 对应部分。export只是使变量可用暂时地当前shell及其子进程setx存储变量永久未来的每个用户或系统进程

你没有展示你使用的所有实际命令,所以根据评论,我猜你运行了这些

setx OPENAI_LOG_FORMAT 'stdout,log,csv,tensorboard'
setx OPENAI_LOGDIR path/to/tensorboard/data
tensorboard --logdir=$OPENAI_LOGDIR

这绝对是错误的!

首先setx应该是仅运行一次,因此如果你想为当前会话设置环境,那么你必须使用set而不是setx。如果你确实想永久设置变量,那么你仍然需要重启 shell所以更改适用,并且不再运行命令

除了单引号不是 cmd 中的引用字符因此,您需要删除''并使用,或者如果您的程序本身确实删除引号,stdout,log,csv,tensorboard则使用双引号"stdout,log,csv,tensorboard"

最后,cmd 中的变量是用%%而不是$像 bash 那样访问的,因此必须将最后一行更改为tensorboard --logdir=%OPENAI_LOGDIR%。最终结果如下

set "OPENAI_LOG_FORMAT=stdout,log,csv,tensorboard"
set "OPENAI_LOGDIR=path/to/tensorboard/data"

tensorboard --logdir=%OPENAI_LOGDIR%

除非你在问题中提供足够的信息,否则这仍然是一个猜测

答案2

你可以尝试这个:

在 PowerShell 中

$env:OPENAI_LOGDIR="path/to/tensorboard/data"

在cmd中

set OPENAI_LOGDIR=path/to/tensorboard/data

答案3

打开你的电脑

  1. 搜索此电脑图标
  2. 单击右键然后选择属性。
  3. 点击高级系统设置(左侧部分)
  4. 单击环境变量(右下)
  5. 添加新的系统变量并保存更改

现在它将适用于所有用户。要测试,请打开 cmd 并输入echo %your_variable%

有关详细信息,请参阅什么是 PATH 和其他环境变量?如何设置或使用它们?

答案4

如果您想将其包含在程序中,下面是在 Python 中完成的操作:

import os

os.environ["OPENAI_LOG_FORMAT"] = 'stdout,log,csv,tensorboard'
os.environ["OPENAI_LOGDIR"] = path/to/tensorboard/data

相关内容