« Where is where.exe ? | トップページ | ファイルのパス名をメモ帳に送るショートカット »

2008年10月20日 (月)

コマンドラインで、フォルダとファイルを判別する。(その2)

簡単で確実なのは、属性をチェックすることです。

属性は、バッチ変数かFOR変数の%~a1で取り出せます。

drahs----

先頭のdをチェックします。

次のバッチファイルでは、環境変数の操作で先頭1文字を取り出します。

IsFolder.CMD フォルダかファイル

@ECHO OFF
SETLOCAL
SET A=%~a1
IF %A:~0,1%==d ECHO フォルダです。
IF %A:~0,1%==- ECHO ファイルです。

次のバッチファイルでは、FOR /F文のeol文字(行頭コメント文字)を利用します。

IsFolder.CMD フォルダかファイル

@ECHO OFF
FOR /F "eol=-" IN ("%~a1") DO ECHO フォルダです。
FOR /F "eol=d" IN ("%~a1") DO ECHO ファイルです。

また、バッチファイルの中では、

FOR %%1 IN ("フォルダかファイル") DO FOR /F "eol=-" IN ("%%~a1") DO ECHO フォルダです。

FOR %%1 IN ("フォルダかファイル") DO FOR /F "eol=d" IN ("%%~a1") DO ECHO ファイルです。

« Where is where.exe ? | トップページ | ファイルのパス名をメモ帳に送るショートカット »