删除所有的.svn文件夹(转)

删除所有的.svn文件夹

删除所有的.svn文件夹

工作中要把一个项目迁移到另外的svn目录中,遇到一个问题,需要先把原来的.svn删除,然后再增加到新的svn中,开始手动删除,但是发现太耗时耗力了,网上搜了几种删除的方法,自己都试了一遍,总结了一下,写出来备忘。

一、在Dos窗口中运行如下命令

for/r<你项目的路径>%iin(.svn)dord/s/q%i

二、将“DeleteSVNFolders”操作添加到右击菜单中

建立一个文本文件,名称随意,后缀为.reg,内容如下:

WindowsRegistryEditorVersion5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN]

@="DeleteSVNFolders"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN\command]

@="cmd.exe/c\"TITLERemovingSVNFoldersin%1&&COLOR9A&&FOR/r\"%1\"%%fIN(.svn)DORD/s/q\"%%f\"\""

保存之后,双击这个reg文件。成功后,在每一个文件夹上点击右键都会有一个“DeleteSVNFolders”的选项,点击这个选项,即可删除这个文件夹下面所有的.svn文件夹

三、编写js程序

程序如下:

1if(WScript.Arguments.length==0){2WScript.Echo("请输入参数!");3WScript.quit();4}5else{6varpath=WScript.Arguments(0);7varfso=newActiveXObject("Scripting.FileSystemObject");8varrootFolder=fso.getFolder(path);9varfolderList=newArray();10folderList.push(rootFolder);1112varfolder,fc;13while(folderList.length>0){14folder=folderList.pop();15fc=newEnumerator(folder.SubFolders);16while(!fc.atEnd()){17if(fc.item().name==".svn"){18fso.deleteFolder(fc.item().path,true);19}20else{21folderList.push(fc.item());22}23fc.moveNext();24}25}26WScript.Echo("完成!");27}

将这个程序保存为后缀为.js的文件,如delsvn.js

运行cscript.exedelsvn.jsXXX

例如:cscript.exeC:\Users\lhc\Desktop\delsvn.jsE:\Union

其中C:\Users\lhc\Desktop\delsvn.js是此js放在桌面上

E:\Union下面的.svn文件夹都会删除

编写此js时注意:

  1、我们输出内容用的是WScript.Echo(),而不用alert()

    如果使用alert(),会报缺少对象的错误,因为alert()是属于浏览器(DOM)的函数,JavaScript中没有这个函数

  2、可执行js文件

    有如下代码:

1

2

3

4

5

6

7

8

9

<job>

<scriptlanguage="javascript">

WScript.Echo("HelloWorld!");

</script>

</job>

把这个代码保存为后缀为.wsf的文件jstest.wsf,双击可运行,如下图:

如果把WScript.Echo("HelloWorld!");这行代码换成上面的删除.svn文件夹的程序,也可以运行,不过由于这个程序需要输入参数,可以以以下方式运行:

cscriptC:\Users\lhc\Desktop\jstest.wsfE:\Union

svn

相关推荐