バッチ ファイル内の変数から二重引用符を削除する
バッチ ファイルでは、複数の単語またはスペースを含む変数を二重引用符で囲む必要がありますが、これらの引用符を出力に表示したくない場合があります。 これらの引用符は、バッチ ファイルの変数から削除できます。
変数から二重引用符を削除するには、さまざまな方法があります。 一部の方法では、CMD 環境で問題が発生し、バッチ ファイルでエラーが発生する可能性があります。
すべての方法と可能性について説明します。 このチュートリアルでは、バッチ ファイル内の変数から二重引用符を削除する方法について説明します。
バッチ ファイルでチルダ文字を使用して二重引用符を削除する
チルダ (~
) 文字を使用して、バッチ ファイル内の変数から二重引用符を削除できます。 チルダ (~
) 文字は、バッチ ファイルでさまざまな方法で使用されます。
引数の引用符の削除とは別に、バッチ ファイル内の文字列変数から部分文字列を抽出するためにも使用されます。 変数から引用符を削除するには、引用符を削除する必要があるコマンド ライン引数の前に %~
を使用します。
パラメータから周囲の引用符をすべて削除します。
set A=%~1
set parameters=%~2 %~3
%A% %parameters%
ここで、%1
はバッチ ファイルに渡される最初のコマンド ライン パラメータを指定し、%2
は 2 番目のコマンド ライン パラメータを指定します。 %9
までのパラメーターのみを処理します。
ただし、この方法は、変数ではなく、バッチ ファイルに渡されるコマンド パラメーターに対してのみ機能します。 ユーザーはこれを変数に使用することが多く、バッチ ファイルの実行中にエラーが発生します。
バッチ ファイル内の変数から周囲の二重引用符をすべて削除する
変数から二重引用符を削除する別の方法は、バッチ ファイルで %var:"=%
を使用することです。これを使用して、任意の文字列または変数から二重引用符を削除できます。
いずれかの端、つまり外側の引用符から引用符を削除するか、一度にすべての引用符を削除することができます。 基本的な構文は次のとおりです。
set variable=%variable:"=%
次の例は、バッチ ファイル内の変数からすべての引用符を削除する方法を示しています。
set var1="Hello World"
set var1
set var1=%var1:"=%
set var1
PAUSE
ただし、変数に &
文字が含まれている場合、上記のコードは機能しません。
変数から二重引用符を削除する以外に、単一引用符またはその他の文字に置き換えることもできます。 上記のコードを使用して、変数内の単語を置き換えることもできます。
バッチ ファイルで二重引用符を一重引用符に置き換える
二重引用符を一重引用符に置き換えるには、次の例に示すように、等号の後に一重引用符を追加します。
set var1="Hello World"
set var1
set var1=%var1:"='%
set var1
PAUSE
バッチ ファイル内の変数から単語を置換する
バッチ ファイル内の変数の単語を他の単語に置き換えるには、次の例に示すように上記のコードを変更します。
set var1="Hello World"
set var1
set var1=%var1:World=Hannah%
set var1
PAUSE
バッチ ファイルで FOR
ループを使用して二重引用符を削除する
二重引用符は、バッチ ファイルの変数から for
ループを使用して削除することもできます。 次の例に示すように、バッチ ファイルに次の行を追加して、変数から二重引用符を削除します。
SET var1="Hello World"
ECHO %var1%
FOR /F "delims=" %%I IN (%var1%) DO SET new_var1=%%I
ECHO %new_var1%
PAUSE
FOR
ループの単一行コードを含むバッチ ファイルを作成して、二重引用符を削除し、.cmd ファイルとして保存することもできます。 さらに、CALL
コマンドを使用すると、別のバッチ ファイルで直接使用して、変数から二重引用符を削除できます。
これは、引用符が一致していない場合は機能しないことに注意してください。 詳細については、ここ をクリックして SS64 フォーラムを参照してください。
そこで、さまざまな方法を使用してバッチ ファイル内の変数から二重引用符を削除する方法について説明しました。 また、各方法の最後に制限事項が記載されています。