windows 如何从批处理文件中只删除空目录

w3nuxt5m  于 2023-11-21  发布在  Windows
关注(0)|答案(5)|浏览(212)

有没有办法从批处理文件中删除给定目录下的所有空子目录?
或者可以递归复制一个目录,但不包括任何空目录?

ef1yzkbh

ef1yzkbh1#

你真的有两个问题:

1.有没有办法从批处理文件中删除指定目录下所有空的子目录?

是的。这个只有一行的DOS批处理文件对我来说很好用。你可以传入一个参数来输入pattern / root,或者它将使用当前目录。

  1. for /f "delims=" %%d in ('dir /s /b /ad %1 ^| sort /r') do rd "%%d" 2>nul

字符串
我使用“dir”的原因|sort'是为了提高性能('dir'和'sort'都相当快)。它避免了在其他答案中使用的递归批处理函数解决方案,这是完全有效的,但可能会非常慢:-(

2.或者可以递归复制一个目录,但不包括空目录?

有很多方法可以做到这一点在其他答案中列出。

wsewodh2

wsewodh22#

要复制忽略空目录,您可以使用以下命令之一:

  1. robocopy c:\source\ c:\dest\ * /s
  2. xcopy c:\source c:\dest\*.* /s

字符串

kgqe7b3p

kgqe7b3p3#

  1. @echo off
  2. setlocal ENABLEEXTENSIONS
  3. call :rmemptydirs "%~1"
  4. goto:EOF
  5. :rmemptydirs
  6. FOR /D %%A IN ("%~1\*") DO (
  7. REM recurse into subfolders first...
  8. call :rmemptydirs "%%~fA"
  9. )
  10. RD "%~f1" >nul 2>&1
  11. goto:EOF

字符串
标签:rmemptydirs.cmd "c:\root dir to delete empty folders in"

pjngdqdw

pjngdqdw4#

xcopy s/s在复制时将忽略空白文件夹

  1. xcopy * path\to\newfolder /s /q

字符串

csga3l58

csga3l585#

这个批处理文件在任何路径下都能很好地完成任务,在我的例子中,我使用Windows环境变量 IWAY61

  1. @echo off
  2. cd %IWAY61%
  3. for /f "usebackq delims=" %%d in (`"dir /ad/b/s | sort /R"`) do rd "%%d"

字符串

相关问题