桁名のみのフォルダをすべて削除したい。だから私は正規表現を使ってバッチファイルを書きます:
@echo off
D:
cd D:\Install\Work
for /d %%i in (*|findstr "^[0-9]*$") do (
rd /s /q %%i
)
echo [all the folders under work are deleted!]
pause
しかし、それは機能しません。エラーはどこにありますか?
桁名のみのフォルダをすべて削除したい。だから私は正規表現を使ってバッチファイルを書きます:
@echo off
D:
cd D:\Install\Work
for /d %%i in (*|findstr "^[0-9]*$") do (
rd /s /q %%i
)
echo [all the folders under work are deleted!]
pause
しかし、それは機能しません。エラーはどこにありますか?
@ECHO OFF
SETLOCAL
FOR /f %%x IN (
'dir /ad /b * ^|FINDSTR "^[0-9]*$" '
) DO ECHO %%x
FOR /F
ファイル/コマンド出力からメタ変数への行を読み取ります。
for /d
dirnames をメタ変数に適用するだけです。
これを試して:
@echo off
for /r D:\Install\Work %%d in (.) do (
echo %%~nxd|findstr "^[0-9]*$" >nul && rd /s /q "%%~fd"
)
これにより、数字のみで構成されていない名前の他のフォルダーが含まれていても、すべて数字のフォルダーが削除されることに注意してください。
%%~nxd
%%d
: ( )から囲んでいる二重引用符を削除し、~
名前 ( n
) と拡張子 ( x
) のみを展開します。>nul
: STDOUT での出力を抑制します%%~fd
%%d
: ( )から囲んでいる二重引用符を削除し、~
フル パスを展開します ( f
)