我试图找出如何在Windows批处理脚本中将文件夹与文件名中的点匹配(例如," .svn")。
这是基本的脚本:
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"
不会返回任何结果。我猜测我错过了一些逃避角色或同样简单的东西,但我还没有找到任何文件。
(在任何人问之前,不,我没有尝试以递归方式删除subversion文件夹; "*.svn"
只是一个例子。)
答案 0 :(得分:2)
也许我错过了什么,但正如你所说的那样简单
for /r /d %%a in (.*) do echo %%~fa
但是如果文件夹被隐藏,那么普通的for
将无法看到它们,所以我们需要执行一个dir
命令,并使用for /f
{ p>
for /f "delims=" %%a in ('dir /ad /s /b .*') do echo %%~fa