.batファイルを使用してフォルダが存在するかどうかを確認する[終了]


160

特定のフォルダー(FolderA)が存在するかどうかを確認し、存在する場合は、メッセージが表示されてバッチファイルが終了するようにしたいと考えています。

FolderAが存在しない場合は、別のフォルダー(FolderB)が存在するかどうかを確認します。FolderBが存在しない場合はメッセージが表示され、フォルダが作成されます。FolderBが存在する場合は、その旨を示すメッセージが表示されます。

これを行うためのバッチファイルを作成するためにメモ帳で単純に使用できるコードについて誰かが何か考えを持っていますか?

これはすべて1つの.batファイルで行う必要があります。


7
ドライブまたはディレクトリが存在するかどうかをGoogle検索でテストします。そして、これはあなたが求めていることを行う方法を正確に説明しています...
NealB

2
ここで「バッチファイルディレクトリが存在します」を検索すると、Windowsバッチファイルが見つかりません。バッチファイルからディレクトリを作成する方法についての投稿もあります。新しい質問を投稿する前に、基本的な調査を行ってください。チャンスは良いです質問は以前ここで尋ねられました。ありがとう。
ケンホワイト

3
Windowsバッチはプログラミング言語です。ファイルが存在するかどうかをプログラミングタスクで確認してください。トピックに表示されます。
Audrius Meskauskas

回答:


259

これを使ってみてください:

IF EXIST yourfilename (
echo Yes 
) ELSE (
echo No
)

yourfilenameをファイルの名前に置き換えます。

ディレクトリについては、https://jeffpar.github.io/kbarchive/kb/065/Q65994/を参照してください

C:
IF NOT EXIST C:\WIN\ GOTO NOWINDIR
CD \WIN
:NOWINDIR

末尾のバックスラッシュ( '\')は、ディレクトリと通常のファイルを区別するのに十分なようです。


2
回答の2番目の部分は不完全です。
tmj 2014年

4
if exist "c:\folder\nul" echo okWindows 7では動作しませんでしたif exist "c:\folder\" echo ok
Alexander Gelbukh 2015年

2
@AlexanderGelbukh-正解ですif exist "networkPath\nul"。Windowsネットワークドライブ上のフォルダとしてファイルを誤って報告する可能性があります。残念ながら、if exist "networkPath\"同じ問題を抱えています。私のすべてのテストで信頼できる手法については、stackoverflow.com / a / 8669636/1012053で2015-12-08アップデートを参照してください。
dbenham

@AlexanderGelbukhそれは引用符なしで動作します。もちろん、これにより、ディレクトリパスにスペースを含めることが制限されます。
2377

1
はい、引用符なしで動作します。ただし、引用符を使用するif exist c:\Windows\nul echo okok、ローカルドライブでも機能しませif exist "c:\Windows\nul" echo okん。私が言ったように、if exist "c:\Program Files\nul" echo ok何も言わないが、if exist "c:\Program Files\" echo ok言うokので、スペースのあるパスでも機能します。
Alexander Gelbukh 16

34

私は答えがここにあると思います(おそらく重複しています):

ファイルがバッチスクリプトのディレクトリであるかどうかをテストする方法

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

%VAR%をディレクトリに置き換えます。フォルダー名の空白の処理に関する詳細が含まれているため、元の回答をお読みください。

foxidriveが言ったように、これはNTクラスのウィンドウでは信頼できないかもしれません。それは私にとってはうまくいきますが、私はそれがいくつかの制限があることを知っています(参照された質問で見つけることができます)

if exist "c:\folder\" echo folder exists 

現代のウィンドウには十分なはずです。


6
\ nul手法は、NTクラスのウィンドウでは信頼できません。ただし、MSDOSとWin9xでは問題ありませんでした。最新のWindowsでのソリューションは単純です if exist "c\:folder\" echo folder exists
foxidrive 2014年

1
これも参照リンクで指定されていると思います。
CosminVană2014年

それでも、私が反対票を投じた理由はわかりません(「役に立たない」という意味です)。必要なシナリオを回答がカバーする質問への参照を追加しました。
CosminVană2014年

現在のマシンには適用できず、以前の回答では何も区別されなかったため、役に立たなかった可能性があります。提示された質問に回答しないため、一部の人々はあなたの回答をまだ反対票を投じます。
foxidrive

2
support.microsoft.com/kb/65994から"NULは常にローカルのMS-DOS FATドライブに存在します"-のようにE:\NUL
CADの問題
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.