在特定目录中递归创建文件夹

时间:2010-11-29 16:54:38

标签: windows batch-file

在最近的备份/恢复周期中,我意识到我设法省略了'.svn'目录中的'tmp'目录,因此我无法更新我的工作副本。如果我手动创建一个新的空'tmp'目录,问题就消失了,所以我正在寻找一种递归遍历每个文件夹的方法,找到'.svn'目录并在其中创建一个'tmp'文件夹。

因为我不想弄乱现有的文件夹,我以为在做傻事之前我会寻求帮助:)

意见/建议将不胜感激,谢谢!

PS:这是在Windows机器上,很遗憾Bash和其他unix实用程序不存在。

3 个答案:

答案 0 :(得分:2)

上面的脚本在我的Windows 7计算机上不起作用。 “dir /b /s .svn”未获得所有目录,我收到“找不到文件”错误。

我将脚本更改为/ ad除了选择目录之外还有效!这是对我有用的srcipt。

@echo off
for /f "usebackq delims=" %%I in (`dir /ad /b /s .svn`) do (
echo Fixing %%I...
mkdir "%%I\tmp"
)

答案 1 :(得分:1)

取决于有多少。

使用

列出目录
 dir/B/S .svn >dirs.bat

在您选择的编辑器中编辑dirs.bat。在每一行的开头添加md(因为每行都以C语言开头:您可以使用相当笨的编辑器 - 包括记事本 - 将C:更改为md C:)。将/ tmp添加到每行的末尾(将.svn替换为.svn\tmp)。保存。运行BAT文件

完成工作。

答案 2 :(得分:0)

以下是如何自动化整个过程。将以下内容放在fixtmp.cmd

等文件中
@echo off
for /f "usebackq delims=" %%I in (`dir /b /s .svn`) do (
echo Fixing %%I...
mkdir "%%I\tmp"
)