2016-07-26 13 views
2

バッチスクリプトでは初心者ですが、c:\ rootの条件で特定のフォルダを削除するバッチファイルを書き込む方法がわかりませんでした。バッチファイルを使用して特定のフォルダを削除する

条件:

  1. フォルダはサブフォルダを持っていない場合は、フォルダ名は「ポール」、「マイク」、「ダニエル」と 「ピエール」
  2. 以外である場合そのフォルダを削除

    :または

アクションを提出。

私の例では、c:\ root \ test1は、このバッチファイルで削除する必要があります。

C:\ルート

C:\ルートポール

C \:\ルート\マイク

C:\ルート\マイク\割り当て

C:\ルート\ Mike \ assignment \ assignment1.txt

c:\ root \ Daniel

C:ダニエル\受験\ \ルート

C:\ルート\ピエール

C:\ルート\ピエール\

C quiz.txt:\ルート\ test1に

C:\ルート\ test2は

C:\ルート\ TEST2 \ test2.txtという名前

何かが不明である場合は私に知らせてください。

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

+0

を取り除くため、このコードのために試してみて、あなたが期待どおりの出力を取得する場合は、起動するコマンドfor' 'if'と'を参照してください。 'if /?'と 'for /?' –

答えて

2

このバッチを使用して、フォルダのサイズが0size=0)に等しいかどうかをテストしてから、削除することができます。

ただ単にecho

@echo off 
setlocal disabledelayedexpansion 
set "folder=%~1" 
if not defined folder set "folder=%cd%" 
for /d %%a in ("%folder%\*") do (
    set "size=0" 
    for /f "tokens=3,5" %%b in ('dir /-c /a /w /s "%%~fa\*" 2^>nul ^| findstr /b /c:" "') do if "%%~c"=="" set "size=%%~b" 
    setlocal enabledelayedexpansion 
     If "!size!"=="0" Echo RD "%%~na" 
    endlocal 
    ) 
endlocal 
pause 
exit 
関連する問題