1. ホーム
  2. batch-file

[解決済み] エコーはオフだが、メッセージは表示される

2023-08-01 07:08:30

質問

batファイルでechoをオフにしました。

@echo off

というようにすると、次のような感じになります。

...
echo %INSTALL_PATH%
if exist %INSTALL_PATH%(
echo 222
...
)

と表示され、私は

システムは指定されたパスを見つけることができません。

この2つのエコーの間にあるメッセージ。

このメッセージの理由は何でしょうか。また、なぜメッセージはエコーを無視するのでしょうか。

どのように解決するのですか?

として マイク・ナキス は言った。 echo off はコマンドを表示しないようにするだけで、結果を表示しないようにすることはできません。 コマンドの結果を隠すには >nul を行末に追加し、エラーを隠すには 2>nul . 例えば

Del /Q *.tmp >nul 2>nul

のように クリステル・アンデルソン が言ったように、エラーが出るのは変数がスペースで展開されているからです。

set INSTALL_PATH=C:\My App\Installer
if exist %INSTALL_PATH% (

になる。

if exist C:\My App\Installer (

ということです。

C:³³が存在する場合は、コマンドライン引数に"(")を指定してAppInstaller"を実行します。

App"という名前のフォルダがないため、エラーが表示されます。 この分割を防ぐために、パスを引用符で囲んでください。