假设有一个变量叫做 %pathtofolder%
,它清楚地说明了这是一个文件夹的完整路径。
我想要删除该目录中的每个文件和子文件夹,但不包括该目录本身。
但是,在执行删除操作时可能会出现“此文件/文件夹已在使用中”的错误...当出现这种情况时,应该继续执行并跳过该文件/文件夹。
是否有相应的命令可供使用?
假设有一个变量叫做 %pathtofolder%
,它清楚地说明了这是一个文件夹的完整路径。
我想要删除该目录中的每个文件和子文件夹,但不包括该目录本身。
但是,在执行删除操作时可能会出现“此文件/文件夹已在使用中”的错误...当出现这种情况时,应该继续执行并跳过该文件/文件夹。
是否有相应的命令可供使用?
删除文件:
del PATH_TO_FILE
删除包含所有文件的文件夹:
rmdir /s /q PATH_TO_FOLDER
要删除特定文件夹中的所有文件(不删除文件夹本身)有点复杂。del /s *.*
无法删除文件夹,但会删除所有子文件夹中的文件。因此需要两个命令:
del /q PATH_TO_FOLDER\*.*
for /d %i in (PATH_TO_FOLDER\*.*) do @rmdir /s /q "%i"
/A
,以便删除设置了隐藏属性的文件,缺少选项/F
,以便删除设置了只读属性的文件,并在最后一个参数周围加上双引号。因此,del /A /F /Q "PATH_TO_FOLDER\*"
会更好。而__FOR__命令行应修改为for /F "eol=| delims=" %%I in ('dir "PATH_TO_FOLDER\*" /AD /B 2^>nul') do rd /Q /S "PATH_TO_FOLDER\%%I"
,因为__FOR__忽略设置了隐藏属性的目录。带有选项/AD /B
的__DIR__输出PATH_TO_FOLDER
中所有目录的名称。 - MofiRMDIR [/S] [/Q] [drive:]path
for /R /D %A in (*node_modules*) do rmdir "%A" /S /Q
它会从当前目录及其子目录中删除所有的node modules文件夹。@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
for /F "eol=| delims=" %%I in ('dir "%TEMP%\*" /AD /B 2^>nul') do rd /Q /S "%TEMP%\%%I"
。带有选项/AD /B
的__DIR__输出%TEMP%
中__所有__目录的名称。 - Mofi我尝试了几种方法,但都没有正常工作。
我在网站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"
forfiles /P "%pathtofolder%" /M * /C "%SystemRoot%\System32\cmd.exe /C if @isdir==FALSE (del /A /F @file) else rd /Q /S @file"
。添加了 /A
选项以删除在 %pathtofolder%
中设置了隐藏属性的文件,否则 DEL 将为 %pathtofolder%
中的每个隐藏文件输出未找到错误消息。添加了 /F
选项以删除在 %pathtofolder%
中设置了只读属性的文件,否则 DEL 将输出访问被拒绝的错误消息。 - Mofi%pathtofolder%
中的每个文件和目录启动一个cmd.exe
实例。优点是__FORFILES__不像__FOR__那样忽略设置了隐藏属性的目录。 - Mofi使用:
del %pathtofolder%\*.* /s /f /q
这将删除%pathtofolder%
中的所有文件和子文件夹,包括只读文件,并且不会提示确认。
rm -rf path\to\folder
命令删除文件夹(或者也可以从 Git Bash 中执行该命令)。总之,如果你遇到这种问题,不妨试试这个方法! - Stijn de Witt