.bat文件中的“*”通配符

匿名
2021-03-03T01:40:43+00:00

.bat程序中对于路径以及文件夹的名字,能使用“*”作为通配符吗?(本人测试结果是不能)

如果能,应该如何使用;如果不能,有何替代方案?

Windows 家庭版 | 以前的 Windows 版本 | 文件、文件夹和存储

锁定的问题。 此问题已从 Microsoft 支持社区迁移。 你可投票决定它是否有用,但不能添加评论或回复,也不能关注问题。

0 个注释 无注释
{count} 票
问题作者接受的答案
  1. 匿名
    2021-03-04T02:56:40+00:00

    不客气,如您所说直接执行命令和保存到批处理执行语法是不同的。

    1 个人认为此答案很有帮助。
    0 个注释 无注释

7 个其他答案

排序依据: 非常有帮助
  1. 匿名
    2021-03-03T03:23:06+00:00

    命令提示符的 DIR、RD、ICACLS 等命令和实用程序支持 * 号作为通配符,但 * 号通配符不是命令提示符的全局功能,所以这取决于您使用的命令或命令行实用程序是否支持将 * 号作为通配符使用。

    0 个注释 无注释
  2. 匿名
    2021-03-03T05:57:44+00:00

    谢谢您的回答。

    我现在想实现的功能是批量删除一个路径下所有开头相同的文件夹。

    例:删除C盘下所有以2020开头的文件夹

    我写的指令为:rd "C:\2020*"

    我认为该指令逻辑没有问题,但是功能没有实现,故提出了该问题。

    希望能得到您的回复与指导,再次感谢。

    0 个注释 无注释
  3. 匿名
    2021-03-03T07:20:05+00:00

    很抱歉,是我是记忆出错了。RD(RMDIR,删除文件夹)命令不支持通配符。 DEL (ERASE,删除文件)命令才支持通配符。

    从您的要求来看,由于限制条件只有一个2020* 开头的文件夹,却又是在驱动器 C 这个重要的系统路径下执行,非常容易导致误删除文件,我个人不建议直接进行删除,下面的命令会生成一份符合您要求的文件夹清单:

    • 以管理员身份打开命令提示符,复制下面的命令并粘贴执行
    CMD /C "DIR /A:D /B /S C:\2020*>>D:~Filelist.txt"

    DIR /A:D /B /S 命令参数组用来遍历指定文件夹及其子文件夹并以简单格式输出,最后将结果保存到 D:~Filelist.txt 文件里,您需要打开该文件,看看其中是否有不希望删除的文件夹,如果有请将其记录删除,然后保存。随后执行下面的命令:

    for /f "delims=?" %l in (D:~Filelist.txt) do RD /S /Q "%l"

    命令将会按照 D:~Filelist.txt 中记录的数据开始删除文件夹。

    **注意:**上述命令对于您没有权限访问的文件和受系统保护的文件都会跳过,所以可能在执行命令的时候会出现访问错误的提示,这是正常的。

    0 个注释 无注释
  4. 匿名
    2021-03-03T07:36:31+00:00

    之前忽略了命令的兼容性,请您在命令提示符中执行上面回复中的命令,在 PowerShell 中执行将会出错。

    0 个注释 无注释