1. ホーム
  2. windows

[解決済み] バッチスクリプトでファイルがディレクトリであるかどうかをテストするには?

2023-06-26 19:15:28

質問

ファイルがディレクトリであるかどうかを調べる方法はありますか?

私は変数にファイル名を持っています。Perlでは、私はこれを行うことができます。

if(-d $var) { print "it's a directory\n" }

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

このようにすればよいでしょう。

IF EXIST %VAR%\NUL ECHO It's a directory

しかし、これは名前にスペースがないディレクトリに対してのみ機能します。 スペースを処理するために変数を引用符で囲むと、動作しなくなります。 スペースを含むディレクトリを処理するには、次のようにファイル名を短い 8.3 形式に変換します。

FOR %%i IN (%VAR%) DO IF EXIST %%~si\NUL ECHO It's a directory

%%~si%%i を 8.3 のファイル名に変換します。 他のすべてのトリックを見るために FOR 変数でできる他のトリックを見るには、次のように入力します。 HELP FOR をコマンドプロンプトで入力する。

(注意 - 上記の例は、バッチファイルの中で動作する形式になっています。コマンドラインで動作させる場合は %%% を両方に入れてください)。