diff options
author | Nobuyoshi Nakada <[email protected]> | 2024-12-27 16:25:49 +0900 |
---|---|---|
committer | Nobuyoshi Nakada <[email protected]> | 2024-12-27 16:25:49 +0900 |
commit | 3a2d1feb1e24569090061bfcab88e3a1ecc24750 (patch) | |
tree | f04f7858085ebafb2bb639ba3e7e9514effa4331 /win32/rm.bat | |
parent | 6be0ae35e8b5bfa46845e12cdd728b131398866b (diff) |
Win32: Rewrite rm.bat
`rd` cannot remove ordinary files, use `del` or `rd` for each entry.
Notes
Notes:
Merged: https://github.com/ruby/ruby/pull/12481
Diffstat (limited to 'win32/rm.bat')
-rwxr-xr-x | win32/rm.bat | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/win32/rm.bat b/win32/rm.bat index 8dddf454d6..7f0336c202 100755 --- a/win32/rm.bat +++ b/win32/rm.bat @@ -1,18 +1,15 @@ @echo off
+setlocal
+set recursive=
:optloop
if "%1" == "-f" shift
if "%1" == "-r" (shift & set "recursive=1" & goto :optloop)
-if "%recursive%" == "1" goto :recursive
:begin
if "%1" == "" goto :end
set p=%1
-if exist "%p:/=\%" for %%I in ("%p:/=\%") do @del "%%I"
+if exist "%p:/=\%" for %%I in ("%p:/=\%") do (
+ del /q "%%I" || if "%recursive%" == "1" rd /s /q "%%I"
+) 2> nul
shift
goto :begin
-:recursive
-if "%1" == "" goto :end
-set p=%1
-if exist "%p:/=\%" rd /s /q "%p:/=\%"
-shift
-goto :recursive
:end
|