首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >自动删除驱动器D中的空文件夹:

自动删除驱动器D中的空文件夹:
EN

Stack Overflow用户
提问于 2017-10-20 16:09:23
回答 3查看 925关注 0票数 0

我正在尝试开发一个批处理文件来自动删除驱动器D中的空文件夹,如下所示:

代码语言:javascript
运行
复制
for /d %%d in (*.*) do (
rmdir %%d
)

但是,当通过Windows的作业调度程序运行批处理文件时,我发现代码试图将空文件夹移到另一个驱动器中。那么,我如何在编码(*.*)时将其更改为特定的驱动器D:?

EN

回答 3

Stack Overflow用户

发布于 2017-10-20 16:20:55

这是因为通过计划任务运行时,您的脚本不会在驱动器D:中执行,而是(默认情况下)在执行任务的用户的根文件夹中执行。

在批处理文件的开头添加D:

代码语言:javascript
运行
复制
D:
for /d %%d in (*.*) do (
rmdir %%d
)
票数 0
EN

Stack Overflow用户

发布于 2017-10-20 16:23:39

代码语言:javascript
运行
复制
for /d %%d in (D:*) do (

注意*不是.

如果愿意,可以使用d:\directoryname\*启动指定的目录名,或者

代码语言:javascript
运行
复制
for /d /r "D:\" %%d in (*) do echo %%d

遍历目录树(注意:为了安全起见,使用ECHO )

最好使用"%%d“作为目录,否则directory name containing spaces将作为‘删除包含”和“空格”的目录“”RMDIR“”执行。“

票数 0
EN

Stack Overflow用户

发布于 2017-10-20 22:07:27

代码语言:javascript
运行
复制
@echo off
    setlocal enableextensions disabledelayedexpansion
    for /f "delims=" %%a in ('dir d:\ /s /b /ad ^| sort /r') do 2>nul rmdir "%%~fa"

该命令使用dir命令来检索驱动器d:根目录下的所有文件夹的列表。此列表按相反顺序排序,以致子文件夹显示在其父文件夹之前。这样,如果删除子元素会留下一个空的父元素,那么它也会被删除。

这个反向排序的列表是使用for /f命令处理的,该命令尝试删除所有文件夹。默认情况下,rmdir不允许删除非空文件夹,因此仅删除空文件夹。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46844857

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档