2011-09-16 6 views
0

文字列から部分文字列を取得し、それが "System"と等しいかどうかを確認しようとしています。 %% aから文字列を取得しています。スクリプトを実行すると、 "予期しない"エラーが発生します。forループ( "set _varsub ...")内の行を削除すると、エラーが消えてしまうので、サブ文字列コマンドに構文エラーがあると思います。誰も私に言う?このバッチスクリプトの構文エラーは何ですか?

for /f "tokens=1,3,4,* delims=: " %%a in ('e:\DeployTools\handle.exe %deploymentdir%\%%i ^| findstr /i pid: ') do @(


     set _varsub=%%a 
     set _varsub=%_varsub:~0,6% 
     if not %_varsubstring%==System (

     // do something 
    ) 

答えて

1

予期しないエラーがある '%_varsubstring%' == 'システム'(...

ない場合if文、

で変数の前後に引用符を入れてみてくださいその点で_varsubstringが定義されていないため、行は次のように評価されます。

そうでない場合は==システム(

1

thescottknightが書いたように、変数が定義されていないとして、あなたのコードは、
を失敗しますが、でも、それはpercentdでは動作しないブラケットの内側に拡大すると失敗します。
あなたのケースでは、感嘆符で遅延展開を使用する必要があります。

set _varsub=%%a 
set _varsub=!_varsub:~0,6! 
関連する問題