我试图遍历指定目录的所有文件和文件夹,然后将其删除。我以前没有批处理脚本的经验,并且已经做了很多在线研究,但是我无法弄清楚为什么以下方法不起作用:
@echo off
CLS
mode con: cols=160 lines=60
echo.
::****************************************************************
Set Location[0]=\lib\Debug
Set Location[1]=\temp\
::****************************************************************
:BEGIN
echo start
for /F "tokens=2 delims==" %%s in ('set Location[') do (
for /r %%i in (%%s) do echo %%i
)
echo end
pause
最终发生的事情是它列出了批处理脚本当前目录中的所有文件。
如何使此脚本循环遍历Location变量中指定的所有目录,然后删除该脚本在其中找到的所有文件和文件夹。清理板岩。
这实际上是删除基本文件夹并重新创建。
@echo off
Set Location[0]=lib\Debug
Set Location[1]=temp
for /F "tokens=2 delims==" %%H in ('set Location[') do (
rmdir /Q /S "%%H"
md "%%H"
)
因此,这是运行批处理文件之前的目录结构清单。
C:\BatchFiles\SO\rmdir>dir /b /s
C:\BatchFiles\SO\rmdir\cleanup.bat
C:\BatchFiles\SO\rmdir\lib
C:\BatchFiles\SO\rmdir\temp
C:\BatchFiles\SO\rmdir\lib\Debug
C:\BatchFiles\SO\rmdir\lib\donotdelete
C:\BatchFiles\SO\rmdir\lib\donotdelete.txt
C:\BatchFiles\SO\rmdir\lib\Debug\deleteme
C:\BatchFiles\SO\rmdir\lib\Debug\deleteme.txt
C:\BatchFiles\SO\rmdir\lib\Debug\deleteme\deleteme.txt
C:\BatchFiles\SO\rmdir\lib\donotdelete\donotdelete.txt
C:\BatchFiles\SO\rmdir\temp\deleteme
C:\BatchFiles\SO\rmdir\temp\deleteme.txt
C:\BatchFiles\SO\rmdir\temp\deleteme\deleteme.txt
现在,我运行批处理文件并再次执行目录列表。您可以看到它从temp和debug中删除了所有内容,但保留了其他所有内容。
C:\BatchFiles\SO\rmdir>cleanup.bat
C:\BatchFiles\SO\rmdir>dir /b /s
C:\BatchFiles\SO\rmdir\cleanup.bat
C:\BatchFiles\SO\rmdir\lib
C:\BatchFiles\SO\rmdir\temp
C:\BatchFiles\SO\rmdir\lib\Debug
C:\BatchFiles\SO\rmdir\lib\donotdelete
C:\BatchFiles\SO\rmdir\lib\donotdelete.txt
C:\BatchFiles\SO\rmdir\lib\donotdelete\donotdelete.txt
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句