4

残りのコマンドを処理する前に、ディレクトリの存在を確認するバッチ ファイルを作成しようとしています。ディレクトリ名は常に同じように始まりますが、末尾にさまざまな数字や場合によっては文字が追加されます。バッチ ファイルの末尾にあるディレクトリを削除したいのですが、最初にパスが存在することを確認せずに rmdir で変数を使用すると、問題が発生します (別のディレクトリが削除される場合など)。以下のコードは私が取り組んできたものですが、システムはこのパスが存在しないと言います。

IF EXIST "C:\Today's Unique Folder*\nul" ( GOTO continue ) ELSE ( GOTO end)

さらに、このパスを変数として設定し、その変数を IF EXIST で使用しようとしましたが、それもうまくいきませんでした。IF EXIST 以外に試すべきコマンドはありますか? よろしくお願いします。

4

2 に答える 2

4

パラメータとともに使用FOR/Dて、ワイルドカードを使用してフォルダ名を検索できます。

RESULTフォルダ名の最初の部分が同じフォルダが複数見つかった場合は、最後のフォルダになることに注意してください。

SET RESULT=---

FOR /D %%d IN ("C:\Today's Unique Folder*") DO (
  SET RESULT=%%d
)

IF EXIST "%RESULT%" (GOTO WINDIR) ELSE (GOTO NOWINDIR)

:WINDIR
  ECHO Yes
  GOTO END

:NOWINDIR
  ECHO No

:END
于 2012-08-13T17:59:27.047 に答える
0

MS KBaseによると、あなたはほとんど正しいです。ディレクトリ名に問題があると思います。以下は、有効なディレクトリ名を使用して機能し、「はい」とエコーします。

ディレクトリ名を二重引用符で囲まずに試してみてください

@echo off

IF EXIST C:\Program Files\NUL ( GOTO WINDIR ) ELSE ( GOTO NOWINDIR )

:WINDIR
echo Yes
goto END

:NOWINDIR
echo No

:END

「C:\Program Files」を「C:\Foo」のような存在しないものに変更すると、「いいえ」と表示されます

于 2012-08-13T17:02:02.183 に答える