【问题标题】:Using Wild card for removing directory in dos在dos中使用通配符删除目录
【发布时间】:2013-04-25 20:09:46
【问题描述】:

我正在开发一个需要从文件夹中删除文件夹的应用程序。但是文件夹名称将具有相同的通用名称减去它的结尾。 NA_monthlyGP_20130131,数字会改变。它位于以下路径C:\Inbound\Extract 我想删除它但保留父目录Extract

【问题讨论】:

  • 为什么这被标记为 ms-dos?这实际上适用于 DOS 或 Windows 版本吗?

标签: batch-file directory wildcard command-prompt dos


【解决方案1】:

将 % 符号加倍以在批处理文件中使用它。

@echo off
for /d %%a in ("C:\Inbound\Extract\NA_monthlyGP_*") do rd /s /q "%%~a"

【讨论】:

    【解决方案2】:

    在命令行上试试这个:

    for /d %i in (NA_monthlyGP_*) do rd "%~i"
    

    【讨论】:

    • 从您的 Extract 文件夹启动它。
    【解决方案3】:

    forfiles /P C:\Inbound\Extract /M NA_monthlyGP_* /C "cmd /c if @isdir==TRUE rmdir /s /q @file"

    forfiles 允许命令行用户为某个位置的每个文件运行命令。适用于 Windows Vista/Server 2003 及更高版本。

    /p pathname 指示开始搜索的路径。 默认文件夹是当前工作目录 (.)。 /M searchmask 根据搜索掩码搜索文件。 默认搜索掩码是 '*' 。 /C command 表示对每个文件执行的命令。 命令字符串应该用双引号括起来。 默认命令是“cmd /c echo @file”。

    【讨论】:

    • 能否请您 edit 解释为什么此命令回答问题?纯代码答案是discouraged,因为它们不教授解决方案。 (提及 forfiles 的版本将是一个开始。)
    • @NathanTuggy 更新了描述。如果您想查看其他评论,请告诉我。你用过这个解决方案吗?你为什么评论?
    • 它出现在LQP队列中,我不是特别希望别人有不好的借口删除它。
    猜你喜欢
    • 2012-02-07
    • 1970-01-01
    • 2020-09-17
    • 2018-01-02
    • 2011-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-03
    相关资源
    最近更新 更多