私はWindowsを使用しています。
システムコールでフォルダ内のすべてのファイルとフォルダを削除したい。
私はそのように呼ぶかもしれません:
>rd /s /q c:\destination
>md c:\destination
もっと簡単な方法を知っていますか?
私はWindowsを使用しています。
システムコールでフォルダ内のすべてのファイルとフォルダを削除したい。
私はそのように呼ぶかもしれません:
>rd /s /q c:\destination
>md c:\destination
もっと簡単な方法を知っていますか?
回答:
いいえ、わかりません。
何らかの理由(ACLなど)で元のディレクトリを保持し、代わりに実際に空にしたい場合は、次の手順を実行できます。
del /q destination\*
for /d %x in (destination\*) do @rd /s /q "%x"
これにより、最初にディレクトリからすべてのファイルが削除され、次にネストされたすべてのディレクトリが再帰的に削除されますが、全体的に最上位ディレクトリはそのままになります(内容を除く)。
バッチファイル%
内では、for
ループ内を2倍にする必要があることに注意してください。
del /q destination\*
for /d %%x in (destination\*) do @rd /s /q "%%x"
destination
をパスに置き換えます。必要に応じて、全体を引用符で囲みます。
私はそれを行う最も簡単な方法は次のとおりだと思います:
rmdir /s /q "C:\FolderToNotToDelete\"
パスの最後の「\」は重要な部分です。
mkdir C:\FolderToNotToDelete
だけで十分でした:)
はい!Powershellを使用する:
powershell -Command "Remove-Item 'c:\destination\*' -Recurse -Force"
ファイルを削除するには:
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"
次のように、必要なもの(フォルダーまたはファイル)を削除するスクリプトを作成できますmydel.bat
。
@echo off
setlocal enableextensions
if "%~1"=="" (
echo Usage: %0 path
exit /b 1
)
:: check whether it is folder or file
set ISDIR=0
set ATTR=%~a1
set DIRATTR=%ATTR:~0,1%
if /i "%DIRATTR%"=="d" set ISDIR=1
:: Delete folder or file
if %ISDIR%==1 (rmdir /s /q "%~1") else (del "%~1")
exit /b %ERRORLEVEL%
使用例はほとんどありません。
mydel.bat "path\to\folder with spaces"
mydel.bat path\to\file_or_folder
簡単な1行のオプションの1つは、ファイルシステムのどこかに空のディレクトリを作成し、ROBOCOPY
(http://technet.microsoft.com/en-us/library/cc733145.aspx)を使用することです。/MIR
スイッチでしてすべてのファイルを削除し、サブフォルダー。デフォルトでは、robocopyはセキュリティをコピーしないため、ルートフォルダのACLはそのまま残ります。
また/r
、デフォルトの再試行回数は100万回であるため、再試行スイッチの値を設定することもできます。
robocopy "C:\DoNotDelete_UsedByScripts\EmptyFolder" "c:\temp\MyDirectoryToEmpty" /MIR /r:3
33個のフォルダーを含むインデックスフォルダーがあり、すべてのファイルとサブフォルダーを削除する必要がありました。インデックスフォルダでコマンドラインを開き、次のコマンドを使用しました。
for /d in (*) do rd /s /q "%a" & (
md "%a")
私はそれらを2行に分けました(最初の行の後にEnterキーを押し、さらに2行目を追加するように求められた場合)。1行で入力すると機能しない場合があるためです。このコマンドは、各ディレクトリを消去してから、空の新しいディレクトリを作成し、元のディレクトリ内のすべてのファイルとサブフォルダを削除します。
親ディレクトリに移動します
サブフォルダを削除する
/superuser/173859/how-can-i-delete-all-files-subfolders-in-a-given-folder-via-the-command-prompt
pushd
場合は、使用する必要がありpopd
ます。残念ながら、popd
ディレクトリを削除すると機能しません。したがって、のcd
代わりに行う必要がありpushd
ます。
これを試してください。これにより、ルートディレクトリの下のすべてのMyFolderが検索され、MyFolderという名前のすべてのフォルダーが削除されます。
for /d /r "C:\Users\test" %%a in (MyFolder\) do if exist "%%a" rmdir /s /q "%%a"