cmd文件中的通配符

时间:2011-04-09 20:39:24

标签: batch-file cmd wildcard

我面临的情况是我需要删除所有用户目录中的一个文件

E.g。

C:\Users\User1\Desktop\deleteme.txt
C:\Users\User2\Desktop\deleteme.txt
C:\Users\User3\Desktop\deleteme.txt

我需要一个将用户目录视为通配符的命令,所以我不需要指定任何内容。

我试过了:

C:\Users\*\Desktop\deleteme.txt

哪个不起作用:(

任何帮助将不胜感激

2 个答案:

答案 0 :(得分:2)

您可以尝试迭代所需的文件夹:

for %%X in (C:\Users\User1 C:\Users\User2 C:\Users\User3) do (del %%X\Desktop\deleteme.txt )

for /d %%X in (C:\Users\*) do (del %%X\Desktop\deleteme.txt )

有一篇好文章 Iterating with "For"

<强>更新 这样:

for /d %%A in (C:\Users\*) do for /d %%B in (%%A\*) do echo %%B

您可以列出所有用户文件夹中的所有子目录。

答案 1 :(得分:-2)

  

C:\用户* \桌面\ deleteme.txt

我认为在C:\Users之后可能会出现反斜杠,但事实并非如此。正如我刚才注意到的那样,这是语法问题。在星号前面的反斜杠被省略。

如果批处理文件证明效率不高而且您只使用Windows 7,则可以切换到PowerShell