2016-04-01 11 views
0

ユーザが入力するディレクトリが実際のディレクトリかパスかを検証する必要があるバッチファイルスクリプトがあります。指定された変数がディレクトリかどうかを確認する

:GetDir 
set /p Dir= 
if not <is directory?> %Dir% goto:GetDir 
if not exist %Dir% mkdir %Dir% 

ユーザーが指定した値がディレクトリであるかどうかを確認する方法はありますか。 ユーザーが入力できる何百万ものものは、明らかにディレクトリではありません。

メモのメモ: このメモは、エディタが読み込んだ後に削除されます。私はこのメモを追加する予定でない場合は事前にお詫び申し上げます。もしそうであれば私はもう一度やり直しないようにしてください。同様の状況が来たら、これらの種類のメモをどこに追加するのかを教えていただければ幸いですもう一度。私はこの質問を維持し、元の質問から元のところに悪い質問をして私の悪い評判を修正するために尋ねたところから回復しようとしています。マークされた重複が私がよく知らない別のスクリプト言語にあるため、これは重複した質問ではありません。私はまた、私が持っていた問題についてこの質問をする前に、いくつかの重い研究をしたことに言及したいと思います。この質問への回答が再び有効になり、私自身の質問に答えることができれば、非常に感謝します。他の誰かが答えを持っているかどうかわからないので、私は現在どのように答えるか知っています。

+0

あなたの質問は何であるかどうかをテストするためにこれを使用することができますか? – numentar

+1

「ディレクトリが存在しない」とはどういう意味ですか?それが存在しない場合、それはディレクトリではありません。 – SomethingDark

+0

'もし存在しないならば'何かがディレクトリ/ファイルであるかどうかをテストすることができます。あるいは、それが有効な名前であればテストを意味しますか? –

答えて

0

ここでディレクトリが存在するかどうかを判断する(実際には2つの方法、)道だし、それが実際にディレクトリではなく、ファイルのこと。

set /p "ServerMods=Enter a Directory: " 

REM First, make sure the input ends with a backslash (\) 
if %ServerMods:~-1% NEQ "\" set "ServerMods=%ServerMods%\ 

REM Option 1 
if not exist %ServerMods% goto :GetDir 

REM Option 2 
dir %ServerMods% 1>nul 2>nul || (goto :GetDir) 
1

あなたはそれが特異的ディレクトリ(とないファイル)

@echo off 
set "file=C:\someDirectory" 
if exist "%file%\." echo directory 
pause 
+0

'set" file = \ "'が正しく動作しないケースがあることに注意してください –

-1
if exist "%ServerMods%\." goto GetDir 
関連する問題