'rm -rf'はWindowsと同等ですか?
Isrm Rfequivalent Windows
フォルダとその子を再帰的に削除する方法が必要です。
既製のツールはありますか、それとも作成する必要がありますか?
DEL /S
ディレクトリは削除されません。
DELTREE
されています ウィンドウズ 2000年以降に削除
#1階
これはあなたがする必要があることです...
次の行を使用して、バッチファイルを作成します
RMDIR /S %1
バッチファイルをRemove.bat
として保存してC:\windows
に入れます
次のレジストリキーを作成します
HKEY_CLASSES_ROOT\Directory\shell\Remove Directory (RMDIR)
起動regedit
そしてデフォルト値を次の値で更新しますHKEY_CLASSES_ROOT\Directory\shell\Remove Directory (RMDIR)\default
'c:\windows\REMOVE.bat' '%1'
それでおしまい!これで、任意のディレクトリを右クリックして、RMDIR機能を使用できます。
#2階
これは私のために働いた:
パスの長さを短くしてみてください。つまり、::は、そのようなファイルのすべてのフォルダの名前を可能な限り小さい名前に変更します。文字の名前を言います。フォルダ階層で上向きに名前を変更し続けます。これにより、パスの長さを効果的に短縮できます。最後に、ファイルをすぐに削除してみてください。
#3階
まず、確認しましょうrm -rf
役割:
C:Usersohnob hings>touch stuff.txt C:Usersohnob hings>rm -rf stuff.txt C:Usersohnob hings>mkdir stuff.txt C:Usersohnob hings>rm -rf stuff.txt C:Usersohnob hings>ls -l total 0 C:Usersohnob hings>rm -rf stuff.txt
3つの状況がありますrm -rf
期待収益に一般的に使用されます0
:
- 指定されたパスは存在しません。
- 指定されたパスが存在し、ディレクトリです。
- 指定されたパスが存在し、ファイルです。
私は許可のこと全体を無視しますが、誰も許可を使用したり、Windowsで書かれたものへのアクセスを拒否しようとしたりしません(まあ、これは冗談を意味します...)。
まず第一に will ERRORLEVEL
0に設定 、そして、パスが存在する場合にのみ、それがディレクトリであるかどうかに応じて異なるコマンドを使用して、パスを削除します。パスが存在しない場合、IF EXIST
しないERRORLEVEL
0に設定されているため、最初に設定する必要がありますERRORLEVEL
通常をシミュレートするには0に設定rm -rf
使用方法正しく検出されます。 use IF EXIST
protected RD
with rm -f
Different、RD
ターゲットが存在しない場合、エラーがスローされるため、必要です。
次のスクリプトフラグメントは、DELPATHが事前に参照されていることを前提としています。 (実行するときSET DELPATH=%1
これはクラス操作中は安全です。ECHO %1
をa . cmd
に入れて、スペースを含むパラメーターを渡して、自分に何が起こるかを確認してください)。コードスニペットが完成したら、IF ERRORLEVEL 1
誤動作をチェックすることができます。
: # Determine whether we need to invoke DEL or RD or do nothing. SET DELPATH_DELMETHOD=RD PUSHD %DELPATH% 2>NUL IF ERRORLEVEL 1 (SET DELPATH_DELMETHOD=DEL) ELSE (POPD) IF NOT EXIST %DELPATH% SET DELPATH_DELMETHOD=NOOP : # Reset ERRORLEVEL so that the last command which : # otherwise set it does not cause us to falsely detect : # failure. CMD /C EXIT 0 IF %DELPATH_DELMETHOD%==DEL DEL /Q %DELPATH% IF %DELPATH_DELMETHOD%==RD RD /S /Q %DELPATH%
重要なのは、環境がPOSIXに準拠している場合、すべてが単純になるということです。または、最小のMSYSをインストールして使用する場合。
#4階
del / s / qディレクトリが削除されます
#5階
パスに移動して、このコマンドをトリガーします。
rd /s /q 'FOLDER_NAME'
/ s:指定されたディレクトリと、ファイルを含むすべてのサブディレクトリを削除します。 / sを使用してツリーを削除します。
/ q:rmdirをクワイエットモードで実行します。確認せずにディレクトリを削除してください。
/? :コマンドプロンプトでヘルプを表示します。
#6階
ディレクトリを(存在するかどうかに関係なく)削除するには、次のコマンドを使用します。
if exist myfolder ( rmdir /s/q myfolder )
#7階
Powershell5.1を使用する
get-childitem *logs* -path . -directory -recurse | remove-item -confirm:$false -recurse -force
削除するディレクトリの名前に置き換えます ログ 。
get-childitem 現在のパス(。)からサブディレクトリを再帰的に検索します。
アイテムの削除 結果を削除します。
#8階
Powershell経由
Remove-Item -Recurse -Force 'TestDirectory'
コマンドプロンプト経由
https://stackoverflow.com/a/35731786/439130
#9階
受け入れられた答えは良いですが、Nodeがインストールされていると仮定すると、ノードライブラリ 'rimraf'を使用してこれをより正確に行うことができ、グロブモードを使用できます。頻繁に使用する場合(私はそうです)、グローバルにインストールするだけです。
yarn global add rimraf
次に、たとえば、私がよく使用するパターンは次のとおりです。
rimraf .**
ode_modules
または、グローバルインストールを回避できる1行のプログラムの場合、パッケージの動的ダウンロードには少し時間がかかります。
npx rimraf .**
ode_modules
#10階
自己責任。提供される情報は「現状有姿」です。厳密なテストはありません。
Windowsアイコン(通常は左下隅)を右クリックし、[Windows PowerShell(管理者)]をクリックし、次のコマンドを使用します(注意しないと、すべてのファイルを簡単に削除できます)。
rd -r -include *.* -force somedir
somedir
削除する空でないディレクトリです。
外部接続されたディスクまたは問題のあるディスクの場合、Windowsが奇妙な動作をすることがあることに注意してください。削除(またはコピーの試行)中にエラーは発生しませんが、ディレクトリは指示どおりに削除(またはコピーされません)されません。 (この場合、少なくとも私にとっては、@ n_yが回答で指定したコマンドは、「get-childitem:ファイルまたはディレクトリが破損していて読み取り不能」などのエラーを生成することがわかりました。PowerShellMediumでは)
#11階
rmdir / s dirname
#12階
次のコマンドを試してください。
del /s foldername
#13階
従来のコマンドプロンプト(cmd.exe)を使用している場合は、RMDIRまたはRDです。
rd /s /q 'path'
PowerShellを使用している場合は、Remove-Item
を使用できます。 (エイリアスis del
、erase
、rd
、ri
、rm
with rmdir
)そして使用は| _ +に短縮できます_ | of -r
パラメータ
-Recurse
#14F
rd -r 'path'
#15F
rmdir /S /Q %DIRNAME%
RMDIR [/S] [/Q] [drive:]path
RD [/S] [/Q] [drive:]path
ディレクトリ自体に加えて、指定されたディレクトリ内のすべてのディレクトリとファイルも削除されます。 ディレクトリツリーを削除するために使用されます。/S
クワイエットモード、使用できるかどうか尋ねないでください/Q
ディレクトリツリーを削除してください
#16階
cygwinをインストールできます。/S
with rm
Waitがあります。
#17階
古いバージョンのWindowsを使用している場合は、deltreeを使用することもできます。
私はこのサイトがコマンドを見つけるのが本当に好きです: SS64:ファイルの削除削除
#18階
管理者:
ls
sysファイルを含むすべてのコンテンツに適用可能
編集:私は実際に最善の方法を見つけ、ファイルパスが長すぎるという問題も解決しました:
takeown /r /f folder cacls folder /c /G 'ADMINNAME':F /T rmdir /s folder
#19F
Windowsにインストールできます GnuWin32 そして、このマシンで* nixコマンドを使用します。これをインストールする前に、Windowsの薄い新しいコピーに他のものをインストールしました。 :)