たとえば、%pathtofolder%
という名前の変数があるとします。これは、フォルダのフルパスであることが明確になっているからです。
このディレクトリ内のすべてのファイルとサブフォルダを削除しますが、ディレクトリ自体は削除しません。
しかし、「このファイル/フォルダはすでに使用されています」というようなエラーが発生する可能性があります。
誰かが私にこのためのいくつかのコマンドを与えることができますか?
このシェルスクリプトを使用して、C:\Temp
source 内のフォルダーとファイルをクリーンアップできます。
del /q "C:\Temp\*"
FOR /D %%p IN ("C:\Temp\*.*") DO rmdir "%%p" /s /q
上記のコマンドを含むバッチファイル(たとえば、delete.bat)を作成します。 delete.batファイルがある場所に移動してから、次のコマンドを実行します。delete.bat
rmdir
は、この仕事で私が最もお気に入りのコマンドです。それは巨大なファイルやサブフォルダを持つフォルダを削除するのに役立ちます。バックアップは作成されないので、このコマンドを実行する前にファイルを安全にコピーしたことを確認してください。
RMDIR "FOLDERNAME" /S /Q
これにより、フォルダとすべてのファイルとサブフォルダが自動的に削除されます。
私が考えることができる最も簡単な解決策は、ディレクトリ全体を削除することです。
RD /S /Q folderPath
それからこのディレクトリをもう一度作成します。
MD folderPath
これにより、フォルダとファイルが削除され、フォルダが残ります。
pushd "%pathtofolder%" && (rd /s /q "%pathtofolder%" 2>nul & popd)
@ECHO OFF
Set dir=path-to-dir
Echo Deleting all files from %dir%
del %dir%\* /F /Q
Echo Deleting all folders from %dir%
for /d %%p in (%dir%\*) Do rd /Q /S "%%p"
@echo Folder deleted.
exit
...指定したディレクトリの下にあるすべてのファイルとフォルダを削除しますが、ディレクトリ自体は削除しません。
CD [Your_Folder]
RMDIR /S /Q .
エラーメッセージが表示され、RMDIRコマンドで現在のフォルダにアクセスできない、つまり削除できないことがわかります。
更新 :
this 便利なコメント( Moritz Both のおかげで)の間に、&&
を追加することができるので、RMDIR
コマンドが失敗するとCD
は実行されません(例:間違ったディレクトリ名)。
CD [Your_Folder] && RMDIR /S /Q .
/S: ディレクトリツリー(すべてのファイルを含む、指定されたディレクトリとそのすべてのサブディレクトリ)を削除します。
/Q: クワイエットモードを指定します。ディレクトリツリーを削除するときに確認を求めません。 (/ qは/ sが指定されている場合にのみ機能することに注意してください。)
RDはREMOVE Directoryを表します。
/ S:フォルダ自体に加えてすべてのファイルとサブフォルダを削除します。これを使用してフォルダツリー全体を削除します。
/ Q:静か - YN確認を表示しない
例:
RD /S /Q C:/folder_path/here
私はPowershellを使います
Remove-Item c:\scripts\* -recurse
フォルダ自体ではなく、フォルダの内容が削除されます。
次のコマンドを使用すると、すべてのコンテンツと親フォルダ自体を削除できます。
RMDIR [/S] [/Q] [drive:]path
メモ帳を使用してテキスト文書を作成し、これをコピー/貼り付けします。
rmdir /s/q "%temp%"
mkdir "%temp%"
[名前を付けて保存]、[ファイル名]を選択します。
delete_temp.bat
ファイルの種類:[すべてのファイル]をクリックし、[保存]ボタンをクリックします。
あらゆる種類のアカウント(管理者または標準ユーザー)で作業し、実行してください。この例では一時変数を使用していますが、他のものも使用できます。 PS Windows OSのみ!
ファイルを削除するには
del PATH_TO_FILE
すべてのファイルを含むフォルダを削除するには:
rmdir /s /q PATH_TO_FOLDER
特定のフォルダからすべてのファイルを削除する(フォルダ自体を削除しない)のは少し面倒です。 del /s *.*
はフォルダを削除できませんが、すべてのサブフォルダからファイルを削除します。そのため、2つのコマンドが必要です。
del /q PATH_TO_FOLDER\*.*
for /d %i in (PATH_TO_FOLDER\*.*) do @rmdir /s /q "%i"
私はこれらの方法をいくつか試しましたが、どれも適切に機能しませんでした。
私はこの2段階のアプローチをサイトで見つけました Windowsコマンドライン :
forfiles /P %pathtofolder% /M * /C "cmd /c if @isdir==FALSE del @file"
forfiles /P %pathtofolder% /M * /C "cmd /c if @isdir==TRUE rmdir /S /Q @file"
それは私が必要とし、OPによって指定されたとおりに正確に機能しました。
@ECHO OFF
rem next line removes all files in temp folder
DEL /A /F /Q /S "%temp%\*.*"
rem next line cleans up the folder's content
FOR /D %%p IN ("%temp%\*.*") DO RD "%%p" /S /Q