使用powershell批量添加Keil和IAR的头文件路径
在Keil和IAR的工程中,为了使文件结构清晰,通常会设置很多的子文件夹,然后将头文件和源文件放在不同的子文件夹中,这样就需要手动添加这些头文件夹的路径。当工程结构非常复杂时,文件夹的数量就非常多,特别是从别人那里拷贝过来的工程目录,添加头文件路径就变得非常的繁琐。所以我们需要一个自动化的方法。该方法会搜索工程目录的文件夹和子文件夹,将其中包含了.h文件的路径找出来,并转换成keil和IAR要求的格式。这个难不倒程序员,只是简单的文件查找,再用点正则就行,QT也好,python也好都很容易实现。但是考虑到keil和IAR的工程师不一定装python,打包也不方便,QT的程序也太大,所以选择了相对熟悉的powershell脚本。简单好用,Windows自带,不需要再额外安装或者下载什么。Simple is better than complex。
不多说,直接上脚本:
$incPath = dir -filter "*.h" -Recurse
$txtList="","" foreach($fpath in $incPath)
{
$txtList+=$fpath.DirectoryName
} $txtTemp=$txtList[0]
$txtTemp
#$KeilOut="",""
$KeilOut="Keil include directories`n`n"
$workDir=get-location
$workDir =$workDir -replace "\\","\\"
foreach($txt in $txtList)
{
if($txt -ne $txtTemp)
{
$txtTemp=$txt
$txtTemp +=";"
$KeilOut += $txtTemp -replace $workDir , "."
$txtTemp=$txt
} }
$IAROut="",""
$IAROut += "`nIAR include directories`n"
$txtTemp=$txtList[0]
foreach($txt in $txtList)
{
if($txt -ne $txtTemp)
{
$txtTemp=$txt
$IAROut += $txtTemp -replace $workDir , "`$PROJ_DIR$"
}
}
$KeilOut>incDir.txt
$IAROut>>incDir.txt
看一下运行之后的结果:
Keil include directories
.\ALGORITHM;.\CORE;.\FWLIB\inc;.\HARDWARE\CCD;.\HARDWARE\Laser;.\HARDWARE\LED;.\HARDWARE\MotorSpeed;.\SYSTEM\delay;.\SYSTEM\sys;.\SYSTEM\usart;.\UCOSII\config;.\UCOSII\ports;.\UCOSII\source;.\UCOSII\ucos_cpu;.\USER;
IAR include directories
$PROJ_DIR$\ALGORITHM
$PROJ_DIR$\CORE
$PROJ_DIR$\FWLIB\inc
$PROJ_DIR$\HARDWARE\CCD
$PROJ_DIR$\HARDWARE\Laser
$PROJ_DIR$\HARDWARE\LED
$PROJ_DIR$\HARDWARE\MotorSpeed
$PROJ_DIR$\SYSTEM\delay
$PROJ_DIR$\SYSTEM\sys
$PROJ_DIR$\SYSTEM\usart
$PROJ_DIR$\UCOSII\config
$PROJ_DIR$\UCOSII\ports
$PROJ_DIR$\UCOSII\source
$PROJ_DIR$\UCOSII\ucos_cpu
$PROJ_DIR$\USER
讲解一下怎么使用这个脚本:
1,打开powershell。
有很多方式打开,我习惯WIN+R打开运行,然后输入powershell打开。
2,使用cd 命令切换到Keil或者IAR的工程目录

3,复制上面的脚本到powershell,按ENTER。然后工程目录下会有一个名字为 incDir.txt的文本文件,里面就是头文件路径。
4,将txt中内容复制粘贴到keil或者IAR中即可

使用powershell批量添加Keil和IAR的头文件路径的更多相关文章
- VS2010 正则批量替换头文件路径
最近在项目实践中,需要统一对工程头文件进行重构,具体要求是,将之前 #include "../../abc/def.h" 类似的头文件引用路径 替换为#include &q ...
- linux添加头文件路径
gcc demo.c -o demo -I/tools/libevent/include -L/tools/libevent/lib -levent -I:头文件目录 -L:静态库目录 -l:静态库 ...
- 使用powershell批量添加Qt的文件(生成pro)
想使用QtCreator作为编辑器编辑keil或者IAR的工程,需要生成.pro文件,于是使用powershell批量处理. 源码如下: $incPath = dir -filter "*. ...
- STM32 关于头文件路径没添加错误问题(cannot open source input file "spi.h": No such file or directory)
error: #5: cannot open source input file "spi.h": No such file or directory 1.出现这种问题,首先要确 ...
- CodeWarrior 10 添加/修改 头文件路径
当使用CodeWarrior 10时,默认使用大名鼎鼎的GCC编译器. 我们在构建工程的时候,往往按模块分类文件夹,那么就存在需要包含头文件路径的问题.那么如何加入头文件的路径呢?见下文. 1.打开工 ...
- IAR之文件路径设置
1.命令解释 $PROJ_DIR$表示工程所在路径 $TOOLKIT_DIR$表示IAR安装目录所在头文件路径 \..\表示返回上一级目录. 2.头文件路径设置 打开工程文件,找到"opti ...
- powershell小脚本--批量添加用户属性----导出登录时间
需求1:某公司所有员工少了MAIL属性,需要批量添加.例如,用户chenyy 添加邮件属性chenyy@xxxx.com 先导出(只导出名字)备用: Get-ADUser -Filter * -Pr ...
- ARM 编译工具keil 和 IAR 命令行编译和下载
目的 不管是Keil还是IAR对代码补全,高亮等编辑功能支持的不是很好,虽然现在的Keil 5.25对界面的支持好了很多,但是很多人还是青睐于第三方的编辑器,命令行的编译方式可以让我们在使用第三方编辑 ...
- PowerShell批量配置VM端点
我们可以通过PowerShell脚本批量添加VM端点.请您参考以下方案. 准备工作 – PowerShell连接China Azure 1. 从官网下载页面,下载并安装Windows Azure Po ...
随机推荐
- Python攻关之Django(一)
课程简介: Django流程介绍 Django url Django view Django models Django template Django form Django admin (后台数据 ...
- Oracle数据库的 增、删、改、查
有时候数据库的查询语句一时想不起来,或不确定是不是语句写的正确,现在整理了一下标准的基本查询语句,便于以后牢记: .数据操作语言 DML:添加(insert into).修改(update set ...
- [python]爬虫学习(三)糗事百科
import requestsimport osfrom bs4 import BeautifulSoupimport timepage=2url='http://www.qiushibaike.co ...
- Holographic Remoting Player
https://developer.microsoft.com/en-us/windows/holographic/holographic_remoting_player http://www.cnb ...
- CodeAtlas For Sublime Text
CodeAtlas is a plugin of SublimeText, which allows one to explore the call graph conveniently. The p ...
- PAT 1045. 快速排序(25)
著名的快速排序算法里有一个经典的划分过程:我们通常采用某种方法取一个元素作为主元,通过交换,把比主元小的元素放到它的左边,比主元大的元素放到它的右边. 给定划分后的N个互不相同的正整数的排列,请问有多 ...
- .Net环境下的缓存技术介绍 (转)
.Net环境下的缓存技术介绍 (转) 摘要:介绍缓存的基本概念和常用的缓存技术,给出了各种技术的实现机制的简单介绍和适用范围说明,以及设计缓存方案应该考虑的问题(共17页) 1 概念 ...
- [LeetCode] Nth Digit 第N位
Find the nth digit of the infinite integer sequence 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ... Note: n i ...
- 如何为Surface Dial设备开发自定义交互功能
随着Surface Studio的发布,微软发布了与之相配套的外设硬件Surface Dial,用户可以将Surface Dail吸附在Surface Studio的屏幕上面,用旋转和点击的实体操作来 ...
- VehicleCamera解读
坐标系: z-axis ^ | | y-axis | / | / |/ +----------------> x-axis 围绕Z轴旋转叫做偏航角,Yaw:围绕X轴旋转叫做 俯仰角,Pitch: ...