Windows 中相当于 unix 命令中的 $

Windows 中相当于 unix 命令中的 $

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

我已经使用 执行了前两个命令setx,因为setx是 Windows 中导出的等效命令,当我尝试时,第三个命令$OPENAI_LOGDIR无法正确检测到。有人能帮忙在 Windows 中找到与此等效的命令吗?

命令

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

tensorboard --logdir=$OPENAI_LOGDIR

答案1

这取决于 shell。在大多数 Unix shell 中,$ 符号表示名称开头,并表示这是一个变量。要在 Windows cmd 中执行相同操作,请使用%OPENAI_LOGDIR%。在 Windows PowerShell 中使用与 bash 相同的语法,即$OPENAI_LOGDIR。但是,如果它是 PowerShell 中的环境变量,您需要使用前缀env:$env:OPENAI_LOGDIR

答案2

SET OPENAI_LOG_FORMAT=stdout,log,csv,tensorboard
SET OPENAI_LOGDIR=C:\path\to\tensorboard\data
tensorboard --logdir=%OPENAI_LOGDIR%

Unix 命令中的撇号只是表示按字面意思处理所包含的文本,从而减少了 Unix shell 尝试解释特殊字符的次数。CMD.EXE(源自 COMMAND.COM)支持特定字符的特殊含义较少,因此通常不需要这样的撇号。

在 Unix 中,以 $ 开头表示变量。对于 CMD,您可以在开头指定一个百分号。在某些情况下,如果在变量名的两边都放置百分号,会更清楚。

虽然 Unix 使用斜杠来指定不同的目录,但从 CMD 运行的大多数程序通常使用反斜杠来分隔目录。

如果您确实更喜欢使用 SETX,那么建议放弃等号(改用空格)并使用引号。

SETX OPENAI_LOG_FORMAT "stdout,log,csv,tensorboard"
SETX OPENAI_LOGDIR "C:\path\to\tensorboard\data"
tensorboard --logdir=%OPENAI_LOGDIR%

相关内容