在 notepad++ 中将命令行命令从一个工具转换为另一个工具

在 notepad++ 中将命令行命令从一个工具转换为另一个工具

我有一个包含很多类似这样的行的脚本:

ss Get $/%SS_SOURCE_PROJECT%/DLL/Vim25Service2005.dll -I-Y -R -VL%2
ss Get $/%SS_SOURCE_PROJECT%/97AUTO/*.* -I-Y -R -VL%2

我们正在从一种工具迁移到另一种工具(VSS -> TFS),需要移植此脚本。像前者(获取单个文件)这样的行应该转换为:

tf get . Vim25Service2005.dll /all /version:L%2

而后者(递归获取目录)应该转换为:

tf get 97Auto /all /recursive /version:L%2

我可以使用 notepad++ 中的几个智能查找和替换命令(也许使用正则表达式)来自动执行此操作吗?

答案1

对于第一行:

寻找:.*\$.*/([^\*]*) *-I *-Y *-R *-V *(.*)

代替:tf get . $1 /all /version:$2

对于第二行:

寻找:.*\$.*/\*\.\* *-I *-Y *-R *-V *(.*)

.*\$.*/(.*)/\*\.\* *-I *-Y *-R *-V *(.*)

代替:tf get . /all /recursive /version:$1

tf get $1 /all /recursive /version:$2

这些正则表达式解决了参数之间可能缺少空格或空格过多的问题,但它们确实要求参数按照您指定的顺序排列(即 -I、-Y、-R、-V)。如果您的参数并非总是按照该顺序排列,我们将不得不发挥更多的创造力。

测试于Notepad++ 6.3.3

如果你需要/想要尝试调整它,我建议使用gskinner 正则表达式工具. 它非常适合快速原型化正则表达式。

相关内容