使用windows注册表删除所有.svn和.project文件
A当我有一个注册表文件时,当右键单击目录时,它会删除.svn文件。我想扩展此windows注册表文件,同时删除从Zend Studio创建的一些临时文件:使用windows注册表删除所有.svn和.project文件,windows,batch-file,registry,Windows,Batch File,Registry,A当我有一个注册表文件时,当右键单击目录时,它会删除.svn文件。我想扩展此windows注册表文件,同时删除从Zend Studio创建的一些临时文件: .buildpath .项目 .设置(目录) 以下是这个问题的答案: 我有: Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN] @="Delete SVN Folders" [HKEY_LOCA
- .buildpath
- .项目
- .设置(目录)
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN]
@="Delete SVN Folders"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN\command]
@="cmd.exe /c \"TITLE Removing SVN Folders in %1 && COLOR 9A && FOR /r \"%1\" %%f IN (.svn) DO RD /s /q \"%%f\" \""
有关当前执行的命令的一些详细信息:
:将调用一个新的命令解释器,执行下面的命令,然后退出(这就是cmd.exe/c
的作用)。命令的其余部分(在第一个和最后一个/c
之间是将由命令解释程序执行的命令)\“
:将命令解释器的标题更改为“删除文件夹中的SVN文件夹”标题删除%1中的SVN文件夹
:更改命令解释器的颜色方案color9a
:将删除当前文件夹中名为.svn的所有文件夹对于(.svn)中的/r\%1\“%%f执行RD/s/q\“%%f\”
&&
表示命令解释器将依次执行所有三个命令。您应该做的是在命令行末尾添加您自己的命令,如:
@=“cmd.exe/c\”标题删除%1和&COLOR 9A和&FOR/r\%1\“%%f中的SVN文件夹(.SVN)DO RD/s/q\“%%f\”&&&&MyCommand*\”
其中MyCommand是删除临时文件所需的命令。我想这就是您要查找的。我只对最后一行进行了更改
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN]
@="Delete SVN Folders"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN\command]
@="cmd.exe /c \"TITLE Removing SVN Folders in %1 && color 9A && for /r \"%~1\" %%F in (.) do (rd /s /q \"%%~fF\.svn\" \"%%~fF\.settings\" & del \"%%~fF\.buildpath\" \"%%~fF\.project\")2>nul \""
此解决方案与Laf所描述的类似,只是他建议在最后一个命令之前使用&。我认为这可能会给您带来问题,因为下一个命令只有在RD成功的情况下才会执行。但是您当前的算法尝试从所有子目录中删除该目录,即使它不存在。我使用了&,因此无论RD的结果如何,next命令(DEL)始终执行。我扩展了RD以删除两个目录,添加的DEL命令将删除两个文件
我将stderr重定向到nul,这样你就不会看到一堆错误消息。该算法效率很低,根据子目录的数量可以生成大量错误消息
如果您的需求变得更加复杂,或者如果您想开发一个更高效的脚本,您最好创建一个批处理文件来完成这项工作,并从注册表项调用该批处理文件。在一行中读取和维护一组复杂的命令会有点混乱。在t注册表。您的问题是什么?您是否要求他人为您实现其他功能?您是否尝试过某些功能,并且遇到了问题?是的,我也希望获得有关删除额外文件的帮助。我会自己尝试,但我不知道从何处开始。听起来您已经有了一个起点,即删除svn文件。只需调整它以删除您要删除的其他文件。是的,我已经有了一个起点,但我真的不知道这行代码在做什么。对于初学者来说,代码不是很可读。我已尝试将:(.svn)更改为(.svn,.settings)但这破坏了代码注意,要删除.svn文件,还有一个标准的svn命令:
svn export
(),它可以通过外壳扩展名使用,例如turtoisesvn()