ワイヤレスツールキットのCacheフォルダ内のすべてのフォルダとファイルを削除するバッチファイルが必要です。
現在私は以下を持っています:
cd "C:\Users\tbrollo\j2mewtk\2.5.2\appdb\RMS"
del *.db
これにより、私のRMSディレクトリ内のすべての.dbファイルが削除されますが、このディレクトリからすべてのものが削除されます。
あなたは私を助けることができます?ありがとう。
del *.*
の代わりにdel *.db
。それはすべてを削除します。
バッチファイルを作成する
下のテキストをバッチファイルにコピーする
set folder="C:\test"
cd /d %folder%
for /F "delims=" %%i in ('dir /b') do (rmdir "%%i" /s/q || del "%%i" /s/q)
すべてのファイルとフォルダを削除します
IF EXIST "C:\Users\tbrollo\j2mewtk\2.5.2\appdb\RMS" (
rmdir "C:\Users\tbrollo\j2mewtk\2.5.2\appdb\RMS" /s /q
)
これにより、フォルダ(およびフォルダ自体)からすべてが削除されます。
del *.*
はファイルのみを削除し、サブディレクトリは削除しません。ディレクトリの内容を隠すには、次のスクリプトを使います。
@echo off
setlocal enableextensions
if {%1}=={} goto :HELP
if {%1}=={/?} goto :HELP
goto :START
:HELP
echo Usage: %~n0 directory-name
echo.
echo Empties the contents of the specified directory,
echo WITHOUT CONFIRMATION. USE EXTREME CAUTION!
goto :DONE
:START
pushd %1 || goto :DONE
rd /q /s . 2> NUL
popd
:DONE
endlocal
Morty346が投稿したものからこれをまとめるだけです:
set folder="C:\test"
IF EXIST "%folder%" (
cd /d %folder%
for /F "delims=" %%i in ('dir /b') do (rmdir "%%i" /s/q || del "%%i" /s/q)
)
変数で定義されたフォルダが最初に存在することのクイックチェックを追加し、次にディレクトリをそのフォルダに変更して内容を削除します。
del
および/S
フラグを使用してこれを行うことができます(すべてのサブディレクトリーからのすべてのファイルを再帰するように指示します)。
del /S C:\Path\to\directory\*
RDコマンドも使用できます。プロンプトなしで静かに再帰的に削除する
@RD /S /Q %VAR_PATH%
set "DIR_TO_DELETE=your_path_to_the_folder"
IF EXIST %DIR_TO_DELETE% (
FOR /D %%p IN ("%DIR_TO_DELETE%\*.*") DO rmdir "%%p" /S /Q
del %DIR_TO_DELETE%\*.* /F /Q
)
これを試してください、それは私のために動作します、私は私の "C:\ tmp"フォルダにデータをダンプするアプリケーションを持っています。 5分ごとに実行するスケジュール
cd "C:\tmp"
del *.* /Q
Robocopyを使用して、空のフォルダを消去しているフォルダにミラーリングできます。
robocopy "C:\temp\empty" "C:\temp\target" /E /MIR
実際のフォルダを削除または再作成できない場合も機能します。
既存の空のディレクトリが必要です。
いっそのこと、私はc:\ windows\tempフォルダーの下のすべてを削除したいとしましょう。
@echo off
rd c:\windows\temp /s /q
つかいます
set dir="Your Folder Path Here"
rmdir /s %dir%
mkdir %dir%
このバージョンは、尋ねずに削除します:
set dir="Your Folder Here"
rmdir /s /q %dir%
mkdir %dir%
例:
set dir="C:\foo1\foo\foo\foo3"
rmdir /s /q %dir%
mkdir %dir%
これでC:\foo1\foo\foo\foo3
がクリアされます。
私はこの答えで@ Abdullah Sabouinについて述べたいと思います https://stackoverflow.com/a/44578851/8238944 私が彼をコピーすることについて混乱がありました。私は彼のポストに気付かなかった。
エラーを指摘してくれた@melpomeneに感謝します。
https://stackoverflow.com/users/478183/morty346 答えの修正版
set folder="C:\test"
cd /D %folder%
if NOT %errorlevel% == 0 (exit /b 1)
echo entire content of %cd% will be deleted, press Ctrl-C to abort
pause
REM first the directories /ad option of dir
for /F "delims=" %%i in ('dir /b /ad') do (echo rmdir "%%i" /s/q)
REM now the files /a-d option of dir
for /F "delims=" %%i in ('dir /b /a-d') do (echo del "%%i" /q)
REM to deactivate simulation mode remove the Word echo before rmdir and del
rmdir
またはdel
だけですべてを削除することはできません。
rmdir /s /q
はワイルドカードパラメータを受け付けません。そのためrmdir /s /q *
はエラーになります。del /s /f /q
はすべてのファイルを削除しますが、空のサブディレクトリは残ります。私が好む解決策(私が他の多くのバッチファイルで使用したように)は、次のとおりです。
rmdir /s /q . 2>NUL