2010-12-31 25 views
1

私はxpを使用しています。変数の使用に問題があります。私は%環境変数を設定する

セット%のvar%

環境変数を使用してvarの値をチェックすると、私は次のコード

を使用しています

は セットVAR = "srting"

をオフ@echo %var%は定義されていません

誰でも助けてください...

答えて

0

ファイルの内容に基づいて、異なるコードパスを実行する場合、これはあなたのために働く必要があります。

@echo off 
set FILE_CONTENT=string 

for /f %%a in (file.txt) do set var=%%a 

if %var%==%FILE_CONTENT% (
goto MATCHED 
) else (
    goto NOT_MATCHED 
    ) 

:MATCHED 
echo "matched" 
goto:EOF 

:NOT_MATCHED 
echo "Not matched" 
goto:EOF 

ただし、ファイル名は「c:\program files(x86)」のように「spaces」または「(」が含まれている場合は、上記のコードは動作しません。回避策は、ファイルの短い名前(おそらく:〜dpsxを使用)を取得し、それを使用することです。

+0

/f %% a(file.txt)にvar = %% a ....を設定します。 %%はこの時点で予期せぬものでした。 –

+0

上記のコードで.batファイルを使用していますか、またはこれらのコマンドをcmdシェルから発行していますか? cmdシェルを使用している場合は、 '%%'を '%'で置き換えます。また、ファイル名に特殊文字がありますか? –

+0

ファイル名に特殊文字はありません。しかし、ファイルテキストには文字列、次に:(コロン記号)、スペース、そしていくつかの文字列が含まれています。スクリプトはファイルから最大:を読み込んでいます。 –

1

等号の前後のスペースを取り除く。 IIRC、私はそれが問題を引き起こす可能性があると思う。

また、あなたがそのような行に複数のコマンドを置くことができない、あなたはアンパサンドでそれを分離する必要がある、またはその代わりに、このように変更します。

@echo off 
set var="srting" 

編集:

あなたがしようと言った:

Set %var% 

が、%VAR%が値ではなく、変数名です。それは本当にあなたが意図したものですか?

+0

私はtryedですが、残念ながらそれは動作しません。プロブラムは同じです。 –

+0

私の編集を参照してください:それはタイプミスでしたか、本当は 'Set'を使うことを意味しましたか? – Mehrdad

+1

私は等号の前後にスペースを使用していました。今、その作業は –

1

セット%のVaRの%環境変数%VAR%

ホワイトスペースはDOSのバッチファイルで変数を設定するには許可されていない定義されていません。

これを試してみてください:

が@echoオフ

セットVAR = "srting"

は%VAR%の

....あなたを与える必要がありますエコーを"srting"次の行に出力します。

あなたが今しよう - あなた自身のコマンドを:設定%のvar%

出力は次のようになります。"環境変数srting定義されていない" 私の見解で正しいある

を。あなたにとって理にかなっていることを願っています。

関連する問題