2016-07-28 11 views
2

バッチスクリプトを作成して、その親の名前で始まるサブフォルダ(egc:\ temp \ root \ students \ students23435)を削除しようとしています。フォルダ(egc:\ temp \ root \ students)に移動します。下図のように太字でfindstrで特定のサブフォルダをバッチファイルで削除する

フォルダを削除する必要があります。

C:\一時\ルート\学生

C:\ tempにする\ルート\学生\ students23435

c:¥temp¥root¥students¥students9875

c:¥temp¥root¥students¥1234

C:\一時\ルート\教師

C:\ tempにする\ルート\教師teachers12345

C \:\ tempにする\ルート\教師\ teachers898

@echo off 
rem pushd "c:\temp\root\" 
for /F "tokens=*" %%I in ('dir /a:d-s-h /b ^| findstr /B /I /C:"students" /C:"teachers"') do ( 
    echo Removing Directory "%%I" 
    rmdir /s /q "%%I") 
rem popd 

このコードを修正してもらえますか?

ありがとうございました。

素晴らしい一日を過ごしましょう。

答えて

0

最初にすべてのフォルダをループします。次に、各フォルダ%%p内に、%%p\%%p*という名前のフォルダがある場合は、そのフォルダとその下のすべてのファイルとフォルダを削除します(それ以外の場合は削除できません)。テストのために

@echo off 

for /f "delims=" %%p in ('dir /b /ad') do (
    for /f "delims=" %%d in ('dir /b /ad "%%p\%%p"* 2^>nul') do echo rmdir /s /q "%%p\%%d" 
) 

一致するフォルダのみが印刷されるように、私は、echormdirコマンドをマスクしています。フォルダを実際に削除するには、echoを削除します。

0
for /d %%A in (C:\Symbols\*) Do (
    For /F "Delims=" %%B In ('@Dir /b /ad %%A') Do @Echo RD /s C:\symbols\%%B 
    ) 

片道です。

+0

わかりませんでした。 "@Dir"の置き換えは何ですか? 親フォルダの削除をスキップするにはどうすればよいですか(例:c:\ temp \ root \ teachers、c:\ temp \ root \ students)? – PNouma2121

+0

'C:\ Symbols'を' c:\ temp \ root'に変更して実行してください。 –

関連する問題