通过命令提示符仅从目录中删除文件和子文件夹
Remove only files and sub folders from a directory through command prompt
我在 C:\Test
路径中有一个名为 Test
的文件夹。此 Test
文件夹中有多个文件和文件夹。现在我想删除 Test
文件夹中的所有内容,而不是删除 Test
文件夹本身。
我一直在尝试这些命令,但它只会删除文件,不会删除文件夹。
del C:\Test\*
del C:\Test\*.*
我想要一个命令来删除 Test
中的文件和子文件夹。
这是必须使用的命令。
CD "C:/Test" && FOR /D %i IN ("*") DO RD /S /Q "%i" && DEL /Q *.*
单条命令不行,单条命令行不行
我会这样做:
cd /D "C:\Test" && rd /S /Q "C:\Test"
这首先更改为目标根目录。 &&
operator 让后面的命令只有在前面的命令成功时才执行。然后尝试删除该目录及其所有内容;对于内容它工作正常,但对于根本身,错误 The process cannot access the file because it is being used by another process.
因为前面的 cd
命令。可以通过将 2> nul
附加到 rd
命令来抑制此错误消息(以及其他错误消息):
cd /D "C:\Test" && rd /S /Q "C:\Test" 2> nul
如果要恢复原始工作目录,请使用 pushd
/popd
而不是 cd
:
pushd "C:\Test" && (rd /S /Q "C:\Test" 2> nul & popd)
与删除和重建(如rd /S /Q "C:\test" && md "C:\Test"
)相比,此方法的优势在于根目录的属性、所有者和安全设置不会丢失。
或者,您可以执行以下操作,这更复杂但可以避免抑制错误:
del /S /Q "C:\Test\*.*" & for /D %%D in ("C:\Test\*") do @rm /S /Q "%%~D"
这首先删除驻留在根目录中的所有文件,然后循环遍历所有直接子目录并一个接一个地删除。根目录本身从未被触及。
我在 C:\Test
路径中有一个名为 Test
的文件夹。此 Test
文件夹中有多个文件和文件夹。现在我想删除 Test
文件夹中的所有内容,而不是删除 Test
文件夹本身。
我一直在尝试这些命令,但它只会删除文件,不会删除文件夹。
del C:\Test\*
del C:\Test\*.*
我想要一个命令来删除 Test
中的文件和子文件夹。
这是必须使用的命令。
CD "C:/Test" && FOR /D %i IN ("*") DO RD /S /Q "%i" && DEL /Q *.*
单条命令不行,单条命令行不行
我会这样做:
cd /D "C:\Test" && rd /S /Q "C:\Test"
这首先更改为目标根目录。 &&
operator 让后面的命令只有在前面的命令成功时才执行。然后尝试删除该目录及其所有内容;对于内容它工作正常,但对于根本身,错误 The process cannot access the file because it is being used by another process.
因为前面的 cd
命令。可以通过将 2> nul
附加到 rd
命令来抑制此错误消息(以及其他错误消息):
cd /D "C:\Test" && rd /S /Q "C:\Test" 2> nul
如果要恢复原始工作目录,请使用 pushd
/popd
而不是 cd
:
pushd "C:\Test" && (rd /S /Q "C:\Test" 2> nul & popd)
与删除和重建(如rd /S /Q "C:\test" && md "C:\Test"
)相比,此方法的优势在于根目录的属性、所有者和安全设置不会丢失。
或者,您可以执行以下操作,这更复杂但可以避免抑制错误:
del /S /Q "C:\Test\*.*" & for /D %%D in ("C:\Test\*") do @rm /S /Q "%%~D"
这首先删除驻留在根目录中的所有文件,然后循环遍历所有直接子目录并一个接一个地删除。根目录本身从未被触及。