2

ユーザーにファイルパスとフォルダー名の最初の3文字の入力を求めるバッチファイルが必要です。次に、バッチが実行され、これらの3文字のフォルダー内のすべてのフォルダーとファイルが削除されますが、フォルダーは3文字で始まります。フォルダとサブフォルダ内のすべてのファイルを削除するバッチファイルを取得しましたが、サブフォルダを削除するためにも必要です。すべてのファイルを削除するための私のコードは次のとおりです。

@echo off
set /p filepath=Path to Main Directory: 
set /p string=First Letters of Sub-Folders to be Cleansed: 
FOR /D %%G in ("%filepath%\%string%*") DO del "%%G\*.*" /q /s
echo Done
pause

次に、のサブフォルダも削除するさまざまな方法を試しました%%G。私はそれがここのサブフォルダに名前を付けているところまで行きまし%%Gた:

@echo off
set /p filepath=Path to Main Directory: 
set /p string=First Letters of Sub-Folders to be Cleansed:
FOR /D %%G in ("%filepath%\%string%*") DO for /r /d %%i in (%%G\*) do del "%%G\*.*" /q && echo %%i
echo Done
pause

しかし && rd /s /q %%i、最後に追加しようとすると、ファイルとパスが見つかりませんと表示されます。

4

1 に答える 1

1

「exp1」フォルダ内のフォルダを再帰的に探す必要はありません。FOR / Dを使用して子フォルダーを一覧表示し、RD / Q/Sを使用して各子をルートとするフォルダー階層全体を削除できます。また、とにかくすべての子フォルダーが削除されるため、ファイルを再帰的に削除する必要はありません。

@echo off
set /p filepath=Path to Main Directory:
set /p string=First Letters of Sub-Folders to be Cleansed:
for /d %%G in ("%filepath%\%string%*") do (
  del "%%G\*" /q
  for /d %%F in ("%%G\*") do rd /s /q "%%F"
)
echo Done
pause
于 2012-10-03T15:40:59.963 に答える