2015-04-14 84 views
0

我想知道如何在Windows批处理脚本中将文件夹与文件名中的点(例如“.svn”)匹配。Windows批处理 - 在文件夹名称中使用点(。)匹配文件夹

这里是基本的脚本:

setlocal 
pushd c:\myDir 
@echo off 
FOR /D /r %%G in ("*\.whatever") DO (
    echo %%G 
    REM do stuff 
) 
@echo on 
popd 
endlocal 

这只是正常的大多数文件夹名称(例如,"*bin"),但我想不出来指定用点文件夹的方法。 "*.whatever""*\.whatever"没有返回结果。我猜想我错过了一些转义字符或者同样简单的东西,但是我一直没能找到任何文档。

(有人问之前,不,我不是试图递归删除文件夹的颠覆。"*.svn"只是一个例子)

+0

发现真正的问题是我正在查找的文件夹被隐藏。 – Ickster

回答

2

也许我失去了一些东西,但你说这看似简单

for /r /d %%a in (.*) do echo %%~fa 

但是,如果文件夹是隐藏的,正常的for将无法​​看到他们,所以我们需要执行一个命令dir的过程中它的输出与for /f

for /f "delims=" %%a in ('dir /ad /s /b .*') do echo %%~fa 
+0

当然是。我刚刚发现我的真正问题是有人决定将我想要的特定目录标记为隐藏。如果我试图寻找其他东西(例如.settings),我会意识到这个问题。谢谢。 – Ickster

+0

@Ickster,我的错,这是一种常见的情况,我没有想到它。答案已更新。如何处理包含隐藏文件夹的情况。 –

相关问题