2010-11-29 94 views
1

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

因为我不想搞砸了,我想我的请求帮助我做了一件愚蠢的:)

的意见/建议将意识到之前,由于现有的文件夹!

PS:这是在Windows机器上,所以令人伤心的Bash和其他Unix工具不存在。

回答

1

取决于有多少。

名单与

dir/B/S .svn >dirs.bat 

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

工作完成。

+0

嗨保罗,感谢您的建议。如果文件夹的路径中不包含任何空格,则工作正常(如果存在空格,则会失败(并且随机开始在同一个目录中创建文件夹,我运行该批处理文件,这很奇怪)。我尝试在“s”中包装路径,但这并没有帮助。任何想法?干杯 – Hamza 2010-11-29 17:19:35

+0

当你做文本替换时将目录放在引号中 – 2010-11-29 18:00:06

0

以下是如何自动化整个过程。将下面的文件中像fixtmp.cmd

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

上面的脚本没有在我的Windows 7机器上工作。 “dir /b /s .svn”没有得到所有目录,我得到一个“文件未找到”错误。

我改变脚本有/广告除了只选择目录和工程!这是为我工作的srcipt。

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