2016-03-07 34 views
0

我有一个文件defines.h下面的代码:使用repl.bat查找和替换文本多行

#ifdef ANDROID 
#define GAME_VERSION (3000) 
#else 
#define GAME_VERSION (3020) 
#endif 

我可以使用这个命令来替换使用这个游戏的版本号的所有实例:

type "defines.h"|repl "(#define GAME_VERSION \().*?(\))" "$1%ANDROID_VERSION_NAME_WHOLE%$2" >"defines_new.h" 

我正在努力想出一个电话,会例如只需替换#ifdef ANDROID块中的那个。有没有人有任何想法?

谢谢, 克里斯。

+0

REPL.BAT已经退役。你应该切换到使用他的大哥 - [JREPL.BAT](http://www.dostips.com/forum/viewtopic.php?t=6044) – dbenham

+0

感谢@dbenham,理论上这应该支持所有可复制的东西.bat支持和更多? –

+0

绝对 - 显着更多。 – dbenham

回答

0

在这里回答了我自己的问题,希望这可以帮助别人。

type "defines.h"|repl "(#ifdef ANDROID\s*#define GAME_VERSION \().*?(\))" "$13400$2" m >"defines_new.h" 
+0

这里的关键部分是m选项,使用多行和\ s *部分 –