0

桁名のみのフォルダをすべて削除したい。だから私は正規表現を使ってバッチファイルを書きます:

@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

しかし、それは機能しません。エラーはどこにありますか?

4

2 に答える 2

0
@ECHO OFF
SETLOCAL
FOR /f %%x IN (
 'dir /ad /b * ^|FINDSTR "^[0-9]*$" '
 ) DO ECHO %%x

FOR /Fファイル/コマンド出力からメタ変数への行を読み取ります。

for /ddirnames をメタ変数に適用するだけです。

于 2013-03-22T08:25:08.900 に答える
0

これを試して:

@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)
于 2013-03-22T08:46:04.037 に答える