Board logo

标题: [文本处理] 批处理怎样提取.C 宏定义的值重命名? [打印本页]

作者: maxwell    时间: 2018-10-31 11:12     标题: 批处理怎样提取.C 宏定义的值重命名?

比如:
存在AA.C  里面有宏定义:
#define _ANDROID_VERSION_ "android_8.0_20180505"
#ifdef _VERSION_RELEASE_  
    _ANDROID_VERSION_"\n",
#else
    _ANDROID_VERSION_"_Debug\n",
#endif
现在我需要 将红色的数据提取出来 ,重命名当前一个.txt (当前文件夹只有一个.txt 名称是随机的但格式始终一致)
如上最终应该是:android_8.0_20180505.txt
(我开始想以关键字_ANDROID_VERSION_ 作为标记去筛选,但是不成功,一方面后面又有2个相同的字符)
作者: Batcher    时间: 2018-10-31 11:56

以关键字 #define _ANDROID_VERSION_ 作为标记去筛选可以吗?
作者: maxwell    时间: 2018-10-31 12:49

回复 2# Batcher


    不行 试过了 可能我的方法不对吧!
作者: Batcher    时间: 2018-10-31 13:11

回复 3# maxwell


    把你尝试的命令发出来看看,我试试修改一下
作者: yhcfsr    时间: 2018-10-31 13:57

本帖最后由 yhcfsr 于 2018-10-31 13:59 编辑
  1. for /f "tokens=3" %%a in ('findstr /c:"#define _ANDROID_VERSION_" "C文件.c"') do ren *.txt "%%~a.txt"
复制代码

作者: /zhqsystem/zhq    时间: 2018-10-31 23:52

for /f "tokens=1,2,* delims=         " %%i in ('type 1.txt')do if /i "%%i"=="#define" if /i "%%j"=="_ANDROID_VERSION_" for /f "delims=" %%k in ("%%~k")do echo,%%~k
作者: maxwell    时间: 2018-11-3 15:15

回复 4# Batcher

已经自我解决了。由于加密的原因,所以每次提取都收到了干扰。获取的值不正确
作者: maxwell    时间: 2018-11-3 15:16

回复 5# yhcfsr


谢谢朋友

已经自我解决了。由于加密的原因,所以每次提取都收到了干扰。获取的值不正确




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2