Equivalent of export command in Windows

setx is not the counterpart of Linux export in Windows. export just makes the variable available temporarily to the current shell and its children processes whereas setx stores the variable permanently to every user or system process in the future.

You didn't show all the real commands you used so based on the comments I guess you ran these

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

which is absolutely wrong

First setx is supposed to be run only once, thus if you want to set the environment for the current session then you must use set instead of setx. If you do want to set the variable permanently then you'll still need to restart the shell so the changes apply, and never run the command again

Besides single quote isn't a quoting character in cmd so you'll need to remove '' and use stdout,log,csv,tensorboard, or "stdout,log,csv,tensorboard" if your program does quote removal by itself

And lastly, variables in cmd are accessed with %% instead of $ like bash, hence you must change the last line to tensorboard --logdir=%OPENAI_LOGDIR%

This is still a guess until you provide enough information in the question


you can try this:

in PowerShell

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

in cmd

set OPENAI_LOGDIR=path/to/tensorboard/data