次は、トリックを行うことは、現在のディレクトリを使用してバッチファイルです注意してください。
@echo off
for /F "delims=" %%D in ('dir /B /AD ^| findstr /V "^web."') do (
echo rmdir %%D /s /q
)
それは大丈夫rmdir
の前でecho
を削除するかどう。
dirコマンドは/AD
のためにディレクトリ名を一覧表示し、/B
のために単純な名前の出力を使用します。最初に検索するには、/V
とfindstr
を使用してください。否定の場合は^
を使用してください。さらにパイプ記号はエスケープする必要があります^|
。
あなたは以下を使用することができ、引数を使用して動的なバッチスクリプトをしたい場合(それは大丈夫rmdir
の前でecho
を削除するなら。)、batchname.bat "C:\foo" web.
を経由してそれを呼び出す:
@echo off
set INVARGS=0
if [%1] == [] set "INVARGS=1"
if [%2] == [] set "INVARGS=1"
if %INVARGS% == 1 (
echo echo %0 ^<directory^> ^<directory_prefix^>
goto eof
)
set "folder=%1%"
set "prefix=%2%"
pushd "%folder%"
echo List of folders that should be deleted:
for /F "delims=" %%D in ('dir /B /AD ^| findstr /v "^%prefix%"') do (
echo "%cd%\%%D"
)
popd
:choice
echo.
set /P "c=Are you sure you want to continue [Y/N]?"
if /I "%c%" EQU "Y" goto yes
if /I "%c%" EQU "N" goto eof
goto :choice
:yes
echo.
pushd "%folder%"
for /F "delims=" %%D in ('dir /B /AD ^| findstr /v "^%prefix%"') do (
echo rmdir %%D /s /q
)
popd
:eof
ありがとう、これはトリックでした! – swimagers