batch
スクリプトからこのコードがあります。スクリプトがで失敗します。")はこの時点で予期せぬことだった" - バッチスクリプト
")この時点では予想外だった"
SETLOCAL EnableDelayedExpansion
set var="value "
echo !var!
IF "!var!"=="value " (
echo Perfect)
P.S.スクリプトにDelayed Expansion
が必要です。
batch
スクリプトからこのコードがあります。スクリプトがで失敗します。")はこの時点で予期せぬことだった" - バッチスクリプト
")この時点では予想外だった"
SETLOCAL EnableDelayedExpansion
set var="value "
echo !var!
IF "!var!"=="value " (
echo Perfect)
P.S.スクリプトにDelayed Expansion
が必要です。
あなたはこのような引用符を使用することができ、変数名に末尾にスペースを含める場合は、エラーmessages.Thoughのない作品を掲載しました抜粋:表彰をもとに
@echo off
SETLOCAL EnableDelayedExpansion
set "var=value "
echo !var!
IF "!var!" == "value " (
echo Perfect)
編集を:
@echo off
setlocal enableDelayedExpansion
for /f "usebackq" %%f in (`"wmic process where name='java.exe' get commandline /format:value"`) do (
call ::run "%%~f"
)
:run
for /f "tokens=7" %%# in ("%%~1") do set "var=%%#"
echo "!var!"
IF "!var!"=="someValue " (
echo Already running
) Else (
echo S
は
スペースは必須です。ここでスクリプト全体を貼り付けることはできませんが、変数varは基本的にスペースを含む "wmic"コマンドの出力に割り当てられます。 IFループに遭遇すると、上記のようなエラーが発生します。 –
@SupratimDas - コードの大きな部分を貼り付ける必要があります。あなたの問題は[this](http://www.dostips.com/forum/viewtopic.php?t=4266)によって引き起こされている可能性があります – npocmaka
ここでは次のようになります: for/f "skip = 1 tokens = 7" %% f in( 'wmic process where' name = 'java.exe' "get commandline ')do( \t \t set v = %% F \t \t後藤実行 \t \t) :\t \tセットVARを実行= V! \t echo "!var!" \tエルス "!のVAR!" == "someValueの"( \t \t \t \tがすでに実行されているエコー)( \t \t \tエコーが停止) がここFORループからの出力は、基本的には変数vに設定されている場合1行目の7番目のトークン。その変数は 'var'に格納され、IFチェックで使用されます。 IFチェックが真であっても、IFループ内のコマンドは実行されません。 IFループ内には、1つのステートメントではなく、たくさんのコマンドがあります。 –
はWMIC出力がUnicode(UTF-16リトルエンディアン)であるように環境変数にwmic' 'の出力を割り当てることに注意してください) を突破しました。 'wmic'の出力をANSI文字列として得る方法の詳細については、[出力を解析する際の変数の誤った書き換えを修正する方法](http://stackoverflow.com/questions/24961755/)の回答を参照してください。 – Mofi
アドバイスありがとう:) はい私はその部分に注意しています。あなたがこれを思いついたので、wmicコマンドの望ましくない出力をNULにリダイレクトする方法はありますか?それはコンソールに同じものを表示したくないということです。このようなもの: for/f "skip = 1 tokens = 7" %% f in( 'wmic process where' name = 'java.exe' "コマンドラインを取得する)do(set v = %% f) Inこの非常にケースが 'java.exe'の産出インスタンスがない場合私はコンソールで出力を参照してください - いいえインスタンス それは正しいですが、私はコンソールに同じ表示されたいのではありません。 –