删除文件夹内容但不是文件夹
我有一个文件夹C:\爱普生扫描,我想弄清楚如何编写一个脚本,将删除该文件夹的内容,但离开该文件夹完好无损。我想出了如何删除整个文件夹,我可以重新创建它。但我想知道是否有人知道删除文件夹内的内容,而不是实际删除文件夹的方法。任何帮助,将不胜感激!删除文件夹内容但不是文件夹
编辑:插入工作代码,以便我可以循环使用多台计算机并一次完成。请问有人会告诉我为什么代码不能在我插入的地方工作?
@echo off
setlocal enabledelayedexpansion
set Delete_success=0
set total=0
for /F %%G in (pclist.txt) do (
set /a total+=1
pushd "C:\Epson Scans" || exit /B 1
for /D %%I in ("*") do (
rd /S /Q "%%~I"
)
del /Q "*"
popd
if !ERRORLEVEL!==0 (
set /a Delete_success+=1
) else (
echo EpsonDelete copy failed on %%G>>EpsonDelete_FailedPCs.txt
)
)
echo Delete Success: %Delete_success%/%total% >>EpsonDelete_FileCopy.txt
del
删除文件而已,所以del /S /Q "C:\Epson Scans"
删除指定文件夹下的所有文件子文件夹(由于/S
)。
rmdir
删除文件夹,因此指定rmdir /S /Q "C:\Epson Scans"
也会删除文件夹Epson Scans
本身。
当然你可以执行mkdir "C:\Epson Scans"
然后重新创建删除的文件夹,但这并没有要求。所以正确答案是使用for /D
遍历C:\Epson Scans
并删除它包含的每个文件夹,然后用del /Q
删除文件:
pushd "C:\Epson Scans" || exit /B 1
for /D %%I in ("*") do (
rd /S /Q "%%~I"
)
del /Q "*"
popd
注意rd
相同rmdir
- 也看到这个帖子: What is the difference between MD and MKDIR batch command?
1)注意如果你这样做了某些文件夹属性,例如所有者。此外,当Windows以不区分大小写的方式处理路径时,这种情况会丢失。
您能否帮助我?您的代码工作完美,但我试图将其插入我的,崩断我在想,如果你可以采取一看它的很短 –
'@回响 SETLOCAL enabledelayedexpansion 集Delete_success = 0 合计设定= 0 的/ F %% G in(pclist。TXT)做( 集/共+ = 1 PUSHD “C:\爱普生扫描” ||出口/ B 1为 /d %%我在( “*”)做( RD/S/Q“ %%〜我” ) DEL/Q “*” POPD 如果!ERRORLEVEL!== 0( 套/年Delete_success + = 1 )其他( 回声EpsonDelete复制失败上%% G >> EpsonDelete_FailedPCs。 txt ) ) echo删除成功:%Delete_success%/%total%>> EpsonDelete_FileCopy.txt' –
有什么机会可以告诉我我哪里会出错? –
删除C:\爱普生扫描* 如果这是批处理文件可能要添加/ Q,以避免删除确认对话框:
del C:\Epson Scans\*.* /Q
需要引号,因为路径有空格。 –
'del'会递归删除所有*文件*,但会在后面留下空的子文件夹... – aschipfl
[del /s](http://ss64.com/nt/del.html)? – Stephan
您是否需要删除其他文件夹?del/f/q/s –
lordkain
可能有[批处理文件。删除目录中的所有文件和文件夹](http://stackoverflow.com/questions/6836566/batch-file-delete-all-files-and-folders-in-a-directory) –