Pong、このコードでは、必要なファイル名で「Keep」変数を入力します。
私はこれらのファイルがどこにあっても大丈夫だと私は確信しています。実際にはパスではなく名前+拡張子のみをチェックしています。
EDIT: [OK]をクリックして、Pongの改訂版を公開します。あまりにも急いで投稿して申し訳ありませんが、私のスクリプトを十分にテストしなかったと推測します。この時間が、
、私は例や再帰的プログラミング(機能:CleanDirsが自分自身を呼び出す)を表示することができますXPバッチプログラミングに:)
Cleanup.cmd:
@echo off
set Keep="%~nx0" "file1.ext" "file2.ext"
set StartDir=%~dp0
call :CleanDirs "%StartDir:~0,-1%"
exit /b 0
:CleanDirs
call :CleanFiles "%~1"
for /f "delims=" %%d in ('dir /ad /b "%~1"2^>nul') do call :CleanDirs "%~1\%%~d"
if exist "%~1" rmdir /Q "%~1">nul 2>nul
exit /b 0
:CleanFiles
for /f "delims=" %%f in ('dir /a-d /b "%~1"2^>nul') do (
set _keep=
for %%k in (%Keep%) do if /i "%%~nxf"=="%%~k" set _keep=yes
if not defined _keep del /f "%~1\%%~f" 2>nul
)
exit /b 0
それでも、これが役に立てば幸いさらに。
ノート
セットは =キープ:あなたは維持する必要がある任意のファイル名で調整します。スクリプトは、これらのファイルを保持するサブフォルダを保持します。
StartDir =%〜dp0:スクリプトが見つかったときに自動的に設定されます。あなたが他の場所でスクリプトを移動したい場合は、引数としてディレクトリ名とそれを呼び出し、「約1%」
コーディングのヒント
%=として、ここで逢引を変更することができます*〜 * 1:(Tild)囲み引用符を削除します。すべての引用符を削除せず、1つの先頭/末尾のみを削除します。
%〜NX0:(tild N x)は、ファイルのn雨+バッチファイルの電子Xトンを取得します。これを関数に入れると、これは変更されます。必要に応じて調整します。 〜DP0
%:(tild dpが)バッチファイルの末尾のバックスラッシュ(\)を含むDリヴ/フルP ATHを(取得警告これは関数に入れている場合、これは変更されます。必要に応じて調整し
%STARTDIR:〜0 、-1%:ここ(Tildスタート、ストップ)は、変数の部分文字列を取得し、位置0から最後の文字にマイナス末尾を取り除くために使用される一つの位置を( \)。
出典
2009-08-18 13:57:03
Jay
@ポン - あなたはちょうどdirをすることはできません/ s/b c:\ some \ file \ path? .../sはdirに再帰を伝えるべきです。次に、ファイル名ではなくフルパスを含めるようにIFを適切に拡張します。 –