2016-08-19 161 views
0

から私は条件付きで別の変数に基づいて変数を設定バッチスクリプトがあります。インライン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は、最初に1つの空白文字に等しくなるように定義されています。

+0

'/ E:on/V:on'はコマンドラインスイッチです。代わりに 'setlocal enableextensions enabledelayedexpansion'を使用してください。 1行に入れてください。 'UPLOAD_CHANNELS'が後で使用されることを推測し、空白が含まれているので、' setlocal ... 'と'/E:ON/V:ONを使って 'UPLOAD_CHANNELS = bla bla bla" ' – elzooilogico

+0

を' '削除されました。 'UPLOAD_CHANNELS'が内部または外部のコマンド、実行可能なプログラムまたはバッチファイルとして認識されませんでした。 'UPLOAD_CHANNELS = ...'を二重引用符で囲むと 'システムは指定されたパスを見つけることができません。 '... – DPeterK

+0

'/E:ON/V:ON ... 'の前に' cmd'がありません。 .. – aschipfl

答えて

0

コードは次のようになりますか?私はあなたのコードがより多くの何かを推測し、そのコンテンツのための変数名のためにとても必要%

definedキーワードを見ていない使用していない、この時点で遅延拡張

の必要がないことを

@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% 

注意

+0

それは仕事をする!あなたの助けをありがとう@elzooilogico – DPeterK

関連する問題