バックアップの現在の日付としてフォルダー名を持つバックアップを削除するバッチ ファイルに取り組んでいます。これまでのところすべて順調ですが、保護したいエラーが発生しました。
これが私がこれまでに持っているものです。
バッチファイルの一部
@ECHO OFF
:RETRY
CLS
d:
cd\mybackup
dir /ad /B /o:n > list.txt
type d:\mybackup\list.txt | find "-"
ECHO Input year and month to delete and press Enter.
ECHO i.e. YYYY-MM
SET "VARIABLE="
SET /p VARIABLE=
if not defined VARIABLE echo No date entered?&PAUSE&goto RETRY
type list.txt|findstr /i /b "%variable%" >nul
IF ERRORLEVEL 1 echo Invalid date entered&PAUSE&goto RETRY
for /D %%f in (%VARIABLE%*) do rmdir %%f /s /q
CLS
ECHO %variable% Backup removed from disk! ! !
PAUSE
GOTO MAIN
テキストファイルからの日付
2013-07-01
2013-07-02
2013-07-03
2013-07-04
2013-07-05
2013-08-09
これまでのところ、ワイルドカードを使用して古いフォルダーを削除する日付を入力するように求められます。日付が入力されていない場合、エラーが返され、再度プロンプトが表示されます。リストされていない日付を入力すると、エラーが返され、再度プロンプトが表示されます。ただし、2013-07 と入力すると、2013-07 を含むすべてのフォルダーが削除されます。2013年に入ると、すべてのフォルダーが削除されます。入力した変数を ####-## として何らかの方法で作成する必要があるため、その形式のみが削除され、入力されたものよりも短くも長くもなりません。
どんな助けでも大歓迎です。