有没有办法从批处理文件中删除给定目录下的所有空子目录?或者可以递归复制一个目录,但不包括任何空目录?
ef1yzkbh1#
你真的有两个问题:
1.有没有办法从批处理文件中删除指定目录下所有空的子目录?
是的。这个只有一行的DOS批处理文件对我来说很好用。你可以传入一个参数来输入pattern / root,或者它将使用当前目录。
for /f "delims=" %%d in ('dir /s /b /ad %1 ^| sort /r') do rd "%%d" 2>nul
字符串我使用“dir”的原因|sort'是为了提高性能('dir'和'sort'都相当快)。它避免了在其他答案中使用的递归批处理函数解决方案,这是完全有效的,但可能会非常慢:-(
2.或者可以递归复制一个目录,但不包括空目录?
有很多方法可以做到这一点在其他答案中列出。
wsewodh22#
要复制忽略空目录,您可以使用以下命令之一:
robocopy c:\source\ c:\dest\ * /sxcopy c:\source c:\dest\*.* /s
robocopy c:\source\ c:\dest\ * /s
xcopy c:\source c:\dest\*.* /s
字符串
kgqe7b3p3#
@echo offsetlocal ENABLEEXTENSIONScall :rmemptydirs "%~1"goto:EOF:rmemptydirsFOR /D %%A IN ("%~1\*") DO ( REM recurse into subfolders first... call :rmemptydirs "%%~fA")RD "%~f1" >nul 2>&1goto:EOF
@echo off
setlocal ENABLEEXTENSIONS
call :rmemptydirs "%~1"
goto:EOF
:rmemptydirs
FOR /D %%A IN ("%~1\*") DO (
REM recurse into subfolders first...
call :rmemptydirs "%%~fA"
)
RD "%~f1" >nul 2>&1
字符串标签:rmemptydirs.cmd "c:\root dir to delete empty folders in"
rmemptydirs.cmd "c:\root dir to delete empty folders in"
pjngdqdw4#
xcopy s/s在复制时将忽略空白文件夹
xcopy * path\to\newfolder /s /q
csga3l585#
这个批处理文件在任何路径下都能很好地完成任务,在我的例子中,我使用Windows环境变量 IWAY61:
@echo offcd %IWAY61%for /f "usebackq delims=" %%d in (`"dir /ad/b/s | sort /R"`) do rd "%%d"
cd %IWAY61%
for /f "usebackq delims=" %%d in (`"dir /ad/b/s | sort /R"`) do rd "%%d"
5条答案
按热度按时间ef1yzkbh1#
你真的有两个问题:
1.有没有办法从批处理文件中删除指定目录下所有空的子目录?
是的。这个只有一行的DOS批处理文件对我来说很好用。你可以传入一个参数来输入pattern / root,或者它将使用当前目录。
字符串
我使用“dir”的原因|sort'是为了提高性能('dir'和'sort'都相当快)。它避免了在其他答案中使用的递归批处理函数解决方案,这是完全有效的,但可能会非常慢:-(
2.或者可以递归复制一个目录,但不包括空目录?
有很多方法可以做到这一点在其他答案中列出。
wsewodh22#
要复制忽略空目录,您可以使用以下命令之一:
字符串
kgqe7b3p3#
字符串
标签:
rmemptydirs.cmd "c:\root dir to delete empty folders in"
pjngdqdw4#
xcopy s/s在复制时将忽略空白文件夹
字符串
csga3l585#
这个批处理文件在任何路径下都能很好地完成任务,在我的例子中,我使用Windows环境变量 IWAY61:
字符串