如何在Windows中的命令提示符下删除特定目录中的文件/子文件夹
比如说,有一个名为如何在Windows中的命令提示符下删除特定目录中的文件/子文件夹,windows,batch-file,file-io,cmd,directory,Windows,Batch File,File Io,Cmd,Directory,比如说,有一个名为%pathtofolder%的变量,它清楚地表明它是文件夹的完整路径 我想删除此目录中的每个文件和子文件夹,但不想删除目录本身 CD [Your_Folder] RMDIR /S /Q . 但是,可能会出现类似“此文件/文件夹已在使用中”的错误。。。当这种情况发生时,它应该继续并跳过该文件/文件夹 是否有此命令?使用: del %pathtofolder%\*.* /s /f /q 这将删除%pathtofolder%中的所有文件和子文件夹,包括只读文件,并且不会提示
%pathtofolder%
的变量,它清楚地表明它是文件夹的完整路径
我想删除此目录中的每个文件和子文件夹,但不想删除目录本身
CD [Your_Folder]
RMDIR /S /Q .
但是,可能会出现类似“此文件/文件夹已在使用中”的错误。。。当这种情况发生时,它应该继续并跳过该文件/文件夹
是否有此命令?使用:
del %pathtofolder%\*.* /s /f /q
这将删除
%pathtofolder%
中的所有文件和子文件夹,包括只读文件,并且不会提示确认。您可以使用此shell脚本清理C:\Temp
中的文件夹和文件:
创建一个包含上述命令的批处理文件(比如delete.bat)。转到delete.bat文件所在的位置,然后运行命令:delete.bat是我一直最喜欢的作业命令。它适用于删除包含子文件夹的大型文件和文件夹。未创建备份,因此请确保在运行此命令之前已安全复制了文件
RMDIR "FOLDERNAME" /S /Q
这将以静默方式删除文件夹以及所有文件和子文件夹。我能想到的最简单的解决方案是使用
RD /S /Q folderPath
然后再次创建此目录:
MD folderPath
您可以使用以下命令删除所有内容和父文件夹本身:
RMDIR [/S] [/Q] [drive:]path
这将删除文件夹和文件,并留下文件夹
pushd "%pathtofolder%" && (rd /s /q "%pathtofolder%" 2>nul & popd)
…删除给定目录下的所有文件和文件夹,但不删除目录本身
CD [Your_Folder]
RMDIR /S /Q .
您将收到一条错误消息,告诉您RMDIR命令无法访问当前文件夹,因此无法删除它
更新:
从有用的注释(感谢),您可以在之间添加&&
,这样RMDIR
将不会在CD
命令失败时运行(例如,键入错误的目录名):
发件人:
/S:删除目录树(指定目录及其所有子目录)
子目录,包括所有文件)
/Q:指定安静模式。在以下情况下不提示确认:
正在删除目录树。(请注意,/q仅在/s为
指定。)
RD代表删除目录 /S:删除所有文件和子文件夹 除了文件夹本身。 使用此选项可以删除整个文件夹树 /Q:安静-不显示YN确认 例如:
RD /S /Q C:/folder_path/here
要删除文件,请执行以下操作:
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"
我使用Powershell
Remove-Item c:\scripts\* -recurse
它将删除文件夹的内容,而不是文件夹本身 用于创建文本文档并复制/粘贴:
@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
rmdir /s/q "%temp%"
mkdir "%temp%"
选择另存为和文件名:
删除临时bat
另存为类型:所有文件,然后单击“保存”按钮
它适用于任何类型的帐户(管理员或标准用户)。跑吧
在本例中,我使用了一个临时变量,但您可以使用任何其他变量!PS:仅适用于Windows操作系统 我尝试了几种方法,但没有一种能正常工作 我在网站上发现了这两个步骤:
它完全按照我的需要和OP的规定工作。2018-06-01发布的答案中没有一个是,除了发布的单个命令行中的,实际上删除了
%PathToFolder%
中的所有文件和所有文件夹/目录。这就是为什么要用一个非常简单的命令行来删除文件夹的所有文件和子文件夹以及批处理文件,并用一个更复杂的解决方案来解释为什么在2018-06-01使用DEL和for和RD发布的所有其他答案都无法清理文件夹完全是
简单的单命令行解决方案当然也可以在批处理文件中使用:
pushd "%PathToFolder%" 2>nul && ( rd /Q /S "%PathToFolder%" 2>nul & popd )
此命令行包含三个依次执行的命令
第一个命令PUSHD将当前目录路径推送到堆栈上,然后使%PathToFolder%
成为运行命令进程的当前目录
这在默认情况下也适用于路径,因为命令扩展在默认情况下是启用的,在这种情况下,PUSHD创建一个指向指定网络资源的临时驱动器号,然后使用新定义的驱动器号更改当前驱动器和目录
PUSHD如果指定的目录根本不存在,则输出以下错误消息以处理STDERR:
系统找不到指定的路径
通过使用2>nul
将此错误消息重定向到设备nul来抑制此错误消息
仅当将当前命令进程的当前目录更改为指定目录成功(即指定目录完全存在)时,才会执行下一个命令RD
带有选项/Q
和/S
的命令RD悄悄地删除一个目录及其所有子目录,即使指定的目录包含具有隐藏属性或只读属性集的文件或文件夹。系统属性从不阻止删除文件或文件夹
未删除的有:
rmdir /s/q "%temp%"
mkdir "%temp%"
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"
pushd "%PathToFolder%" 2>nul && ( rd /Q /S "%PathToFolder%" 2>nul & popd )
@echo off
setlocal EnableExtensions DisableDelayedExpansion
rem Clean the folder for temporary files if environment variable
rem PathToFolder is not defined already outside this batch file.
if not defined PathToFolder set "PathToFolder=%TEMP%"
rem Remove all double quotes from folder path.
set "PathToFolder=%PathToFolder:"=%"
rem Did the folder path consist only of double quotes?
if not defined PathToFolder goto EndCleanFolder
rem Remove a backslash at end of folder path.
if "%PathToFolder:~-1%" == "\" set "PathToFolder=%PathToFolder:~0,-1%"
rem Did the folder path consist only of a backslash (with one or more double quotes)?
if not defined PathToFolder goto EndCleanFolder
rem Delete all files in specified folder including files with hidden
rem or read-only attribute set, except the files currently opened by
rem a running process which prevents deletion of the file while being
rem opened by the application, or on which the current user has not
rem the required permissions to delete the file.
del /A /F /Q "%PathToFolder%\*" >nul 2>nul
rem Delete all subfolders in specified folder including those with hidden
rem attribute set recursive with all files and subfolders, except folders
rem being the current directory of any running process which prevents the
rem deletion of the folder and all folders above, folders containing a file
rem opened by the application which prevents deletion of the file and the
rem entire folder structure to this file, or on which the current user has
rem not the required permissions to delete a folder or file in folder tree
rem to delete.
for /F "eol=| delims=" %%I in ('dir "%PathToFolder%\*" /AD /B 2^>nul') do rd /Q /S "%PathToFolder%\%%I" 2>nul
:EndCleanFolder
endlocal
del /A /F /Q "%PathToFolder%\*" >nul 2>nul
for /F "eol=| delims=" %%I in ('dir "%PathToFolder%\*" /AD /B 2^>nul') do rd /Q /S "%PathToFolder%\%%I" 2>nul
dir "%PathToFolder%\*" /AD /B 2>nul