web-dev-qa-db-ja.com

cmdでの「(」の意味

コマンドプロンプト(、つまり開き括弧を入力すると、次のようになります。

(
More? 

(またはその他の文字と入力し続けると、同じメッセージが表示されます。 これは停止します)を入力すると、つまり、閉じ括弧を入力すると、エラーが発生しますが、それは言う:

) was unexpected at this time

それ以外は、I このコマンドの機能が見つかりませんでした。それが何をするのかアイデアはありますか?

4

()は実際にはコマンドではありませんが、コマンドのシーケンスをグループ化して、CMDシェルが通常単一のコマンドが表示されることを期待する場所で使用できるようにするグループ化演算子です。
()の間のコマンドは、実際にはCMDの別のインスタンスで実行されます。 「(」を手動で入力すると、その新しいインスタンスが入力され、コマンドが待機します。

if not exist c:\myfile (
  echo File doesn't exist
) else (
  echo File DOES exists
  del c:\myfile
)

通常、IF ELSEは同じ行にある必要があり、THEN句とELSE句で実行できるコマンドは1つだけであることに注意してください。
「()」を使用すると、(xxxxx)ブロック全体が単一のコマンドとして扱われ、同じ行に表示されているかのように扱われます。

6
Tonny

(と)はbegin blockend blockのようなものです。バッチファイル(.bat)に入れることができるものはすべて、コマンドラインに入力できます。

たとえば、ステートメントのブロックをifに入れることができるバッチファイルを書くことができます。

if "%1"=="" (
  echo Multiple
  echo Lines when no parameter
)
echo END

パラメータなしでバッチを実行すると、()の間のすべてのコマンドが実行されます。最初のパラメーターが指定された場合、出力は「END」のみです。

コマンドラインに戻ります。コマンドラインで直接入力して実際にこれを使用するためのトリックやテクニックはわかりません。ただし、同じルールに従います。コマンドラインで次のように入力した場合:

(echo "1" & echo "2")

出力は次のとおりです。

1
2
2
miltonb