【嵌入式工具】Keil插件 改变文件可读属性

0 前言

  在查找和Keil相关的插件过程中,无意间找到一个是基于bat脚本实现改变文件的可读属性的插件,原文链接。之前因为没有需求所以搁置了,最近心血来潮想着可以研究一下。于是仔细阅读了一下它的代码,发现也不是很复杂,于是在原来基础上迭代了一版。

1 先看成果

  • 代码:
@echo off
if [%1] == [] (   ::如果没有输入参数, 即是处理项目下全部文件
    attrib -A %1 /s
    for /f %%a in ('attrib %1') do (
        if "%%a"=="R" (attrib -R %1 /s && echo Unlocked) else (attrib +R %1 /s && echo Locked)
    )
    exit
)
for %%p in (%*) do (   ::遍历每个参数
    ::echo %%p
    attrib -A "%%p"
    for /f %%a in ('attrib "%%p"') do (
        if "%%a"=="R" (attrib -R "%%p" /s && echo Unlocked) else (attrib +R "%%p" /s && echo Locked)
    )
)
exit
  • keil中的配置:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 更新:
    最主要的还是新增了当前文件下的都一次性切换,因为原先的改变所有文件的可读属性是不分后缀的,而更新的这个改变当前文件下特定后缀的文件感觉更合适。当然,原先的改变所有文件的可读属性也保留了。

2 相关知识点

2.1 关于参数输入

  之前的文章已经介绍了如何获取单个参数,使用的是%1 %2这种,但是我想要实现遍历所有参数就不行了,也就是只能接收固定个数的参数,可扩展性不强。经过查找资料,发现可以使用%*来表示所有参数,但是这里的所有参数就是从第一个参数开始后面的格式,所以参数之间是使用空格分隔的,这一点在for循环的时候需要注意,不能加/f参数,因为只有一行。

2.2 单双引号

  一开始下意识以为单双引号是一样的效果,即可以像python一样嵌套,但是实践发现,bat语法中只有双引号表示的是字符串,单引号就是一个普通的字符而已

2.3 中括号的使用——判断输入参数是否为空

  需要明确的是,原文中实现一次性改变所有文件的可读属性是通过给attrib指令传递空路径来实现的,即处理当前路径下所有的文件。因此,就会存在一个问题,输入的参数要么是带引号的路径(因为怕路径有空格),要么是空,那怎么判断参数是空呢?
  如果直接使用if "%*" == "",就会存在如果参数中也有引号这个语句就会报错,因此这里还缺少一个符号,通过参考这个链接,发现中括号也可以抵消掉空格的影响,因此可以这样使用:if [%*] == []来判断输入参数是否为空。

参考链接

2.3 keil中的符号含义

在这里插入图片描述
在这里插入图片描述在这里插入图片描述

参考链接

  • 28
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

记录无知岁月

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值