获取错误“文件名,目录名称或卷标语法不正确。”从批处理脚本
问题描述:
我有一个批处理脚本有条件地设置基于另一个变量的变量:从包含直列if
语句行获取错误“文件名,目录名称或卷标语法不正确。”从批处理脚本
The filename, directory name, or volume label syntax is incorrect.
:
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%
我得到的错误。
请注意,首先将变量UPLOAD_CHANNELS
定义为等于单个空格字符。
答
你的代码看起来像这样吗?
@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
关键词查询的变量名不是它的内容,因此无需%
我猜你的代码做更多的东西,在这一点上是没有必要延迟扩展
+0
这样做的工作!感谢您的帮助@elzooilogico – DPeterK
'/ E:on/V:on'是命令行开关。改为使用'setlocal enableextensions enabledelayedexpansion'。把它放在一行。猜测'UPLOAD_CHANNELS'稍后会被使用,并且由于它包含空格,所以你最好'set'UPLOAD_CHANNELS = bla bla bla''用'setlocal ...'和'/ E:ON/V:ON来设置' – elzooilogico
'删除我得到错误''UPLOAD_CHANNELS'不被识别为内部或外部命令,可操作程序或批处理文件。使用双引号将'UPLOAD_CHANNELS = ...'包围'使系统找不到指定的路径。'... – DPeterK
您在'/ E:ON/V:ON ...'前面缺少'cmd'。 .. – aschipfl