我有一个批处理脚本,它根据另一个变量有条件地设置变量:
set LABEL_NAME=main
echo %LABEL_NAME%
set UPLOAD_CHANNELS=
/E:ON /V:ON if not defined %BINSTAR_TOKEN% set UPLOAD_CHANNELS=--upload-channels scitools/label/!LABEL_NAME!
echo %UPLOAD_CHANNELS%
我收到错误:
文件名,目录名或卷标语法不正确。
来自包含内联if
语句的行。
请注意,变量UPLOAD_CHANNELS
首先定义为等于单个空格字符。
答案 0 :(得分:1)
您的代码看起来像这样吗?
@echo off
setlocal enableextensions enabledelayedexpansion
set "LABEL_NAME=main"
echo %LABEL_NAME%
set "UPLOAD_CHANNELS= "
if not defined BINSTAR_TOKEN set "UPLOAD_CHANNELS=--upload-channels scitools/label/!LABEL_NAME!"
echo %UPLOAD_CHANNELS%
请注意,使用defined
关键字查找变量名称而不是其内容,因此不需要%
我猜你的代码会做更多的事情,此时不需要延迟扩展