
@echo off
attrib -A %1 /s
for /f %%a in ('attrib %1') do (if "%%a"=="R" (attrib -R %2 /s &&echo Unlocked) else (attrib +R %2 /s &&echo Locked))
exit
3.2 设置
打开Keil的tools->customize tools menu菜单可以添加用户自定义的菜单选项。如下图所示:
Menu Content:锁定当前文件
Command:C:\Software\Keil_V5\Tools\更改只读属性\lock.bat
Arguments:!E !E
Menu Content:锁定所有文件
Command:C:\Software\Keil_V5\Tools\更改只读属性\lock.bat
Arguments:%P
记得勾选Run Minimized项,这样就不会有批处理的黑窗d出。
4. 相关说明
4.1 批处理相关知识
4.1.1 显示或槐桐裂更改文件属性。
ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [[drive:] [path] filename] [/S [/D]]
+ 设置属性。
- 清除属性。
R 只读文件属性。
A 存档文件属性。
S 系统文件属性。
H 隐藏文专件属性。
[drive:][path][filename]指定要处理的文件属性。
/S 处理当前文件夹及其子文件夹中的匹配文件。
/D 也处理文件夹
4.1.2 给批处理脚本传递参数
批处理文件中可引用的铅闭参数为%0-%9,%0是指批处理文件的本身,也可以说是一个外部命令;%1-%9是批处理参数,也称形参。我们来新建一个文件,文件命名为test.bat,文件内容如下:
@echo off
echo param[0] = %0
echo param[1] = %1
echo param[2] = %2
echo param[3] = %3
echo param[4] = %4
echo param[5] = %5
echo ...
pause
在控制台运行,并且处传入参数,运行结果如下:
>test.bat 1 2 3 4
param[0] = test.bat
param[1] = 1
param[2] = 2
param[3] = 3
param[4] = 4
param[5] =
...
请按任意键继续. . .
pause>nul和pause
pause就是暂停命令,执行时会在命令行窗口显示请按任意键继续. . .并等待你按键。pause >nul的作用是同样的,区别是不显示请按任意键继续. . .这些字,nul相当于空文件,把这些文字隐去了。同样是等待你按键。
>是重定向符(将输出的内容重定向到其它的设备),例如echo hello >c:\1.txt把hello 重定向到c:\1.txt,如果c:\1.txt不存在则新建。nul 是空设备。
echo off关闭回显;@echo off加了@就是连本身也不显示。
4.1.3 Bat批处理之for详解
FOR /F ["options"] %variable IN ('command1') DO command2 [command-parameters]
for、in和do是for语句的关键字,它们三个缺一不可;
in之后,do之前的括号不能省略;
关于%variable要注意:%a,%%a 是for循环时用的。%a 是在CMD直接执行时用的,%%a是在BAT脚本中轮备用的。%a%是普通变量。
options可以为:delims=XX(指分隔符集);tokens=x,y,m-n(指每行的哪一个符号被传递到每个迭代的 for 本身);skip=n(指在文件开始时忽略的行数)。
参数/f的效果:for会先读出command1执行后得到的所有结果,并把它作为一个集合,并且以每一行作为一个元素传入参数%variable。
4.1.4 批处理顺序执行多条命令
命令1 &命令2 &命令3 ... (无论前面命令是否故障,照样执行后面)
命令1 &&命令2 &&命令3....(仅当前面命令成功时,才执行后面)
命令1 || 命令2 || 命令3.... (仅当前面命令失败时,才执行后面)
4.1.5 Bat批处理之if详解
判断字符串是否相等的时候,if会区分大小写。若不想区分大小写,则需要if /i "字符串1"=="字符串2" 的格式。
判断两个数值之间的大小关系时,由于在批处理中>和<为重定向符号,这就意味着我们不能用>来表示大于,<表示小于。
Keil工具_更改文件只读属性Keil⼯具_更改⽂件只读属性
1. 前⾔
Keil给⽤户留了⼀个插⼊⾃定义组件的选项。通过插件⽤户可以使⽤外部的编辑器(如Notepad++、VScode等),也可以添加其他⾃定义功能。可以参考这篇⽂章。
为了避免键盘误 *** 作破坏代码,我习惯于锁定(只读)已完成的源⽂件。但每次都要在资源管理器修改属性很⿇烦。本⽂介绍的这个批处理可以在Keil软件内轻松⾃由切换源⽂件的只读状态。(⽹上查了许久都找不到,只能⾃⼰写了 )
插件使⽤批处理,理论上不限定软件版本。IAR没有测试,如果参数⼀致也是可⾏的。
2. 效果
先来看看效果
3. 快速开始
3.1 代码
复制代码到⼀个新建的txt⽂件中,更改后缀名为.bat,放到任意⽂件夹下。
@echo off
attrib -A %1 /s
for /f %%a in ('attrib %1') do (if "%%a"=="R" (attrib -R %2 /s &&echo Unlocked) else (attrib +R %2 /s &&echo Locked))
exit
3.2 设置
打开Keil的tools->customize tools menu菜单可以添加⽤户⾃定义的菜单选项。如下图所⽰:
Menu Content:锁定当前⽂件
Command:C:\Software\Keil_V5\Tools\更改只读属性\lock.bat
Arguments:!E !E
Menu Content:锁定所有⽂件
Command:C:\Software\Keil_V5\Tools\更改只读属性\lock.bat
Arguments:%P
记得勾选Run Minimized项,这样就不会有批处理的⿊窗d出。
4. 相关说明
4.1 批处理相关知识
4.1.1 显⽰或更改⽂件属性。
ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [[drive:] [path] filename] [/S [/D]]
+ 设置属性。
- 清除属性。
R 只读⽂件属性。
A 存档⽂件属性。
S 系统⽂件属性。
H 隐藏⽂专件属性。
[drive:][path][filename]指定要处理的⽂件档升属性。
/S 处理当前⽂件夹及其⼦⽂件夹中的匹配⽂件。
/D 也处理⽂件夹
4.1.2 给批处理脚本传递参数
批处理⽂件中可引⽤的参数为%0-%9,%0是指批处理⽂件的本⾝,也可以说是⼀个外部命令;%1-%9是批处理参数,也称形参。我们来新建⼀个⽂件,⽂件命名为test.bat,⽂件内容如下:
@echo off
echo param[0] = %0
echo param[1] = %1
echo param[2] = %2
echo param[3] = %3
echo param[4] = %4
echo param[5] = %5
echo ...
pause
在控制台运⾏,并且处传⼊参数,运⾏结果如下:
>test.bat 1 2 3 4
param[0] = test.bat
param[1] = 1
param[2] = 2
param[3] = 3
param[4] = 4
param[5] =
...
请按任意键继续. . .
pause>nul和pause
pause就是暂停命令,执⾏时会在命令⾏窗⼝显⽰请按任意键继续. . .并等待你按键。pause >nul的作⽤是同样的,区别是不显⽰请按任意键继续. . .这些字,nul相当于空⽂件,把这些⽂字隐去了。同样是等待你按键。
>是重定向符(将输出的内容重定向到其它的设备),例如echo hello >c:\1.txt把hello重定向到c:\1.txt,如果c:\1.txt不存在则新建。nul是空设备。
echo off关闭回显;@echo off加了@就是连本⾝也不显⽰。
4.1.3 Bat批处理之for详解
FOR /F ["options"] %variable IN ('command1') DO command2 [command-parameters]
for、in和do是for语句的关键字,它们三个缺⼀不可;
in之后,do之前的括号不能省略;
关于%variable要注意:%a,%%a是for循环时⽤的。%a是在CMD直接执⾏时⽤的,%%a是在BAT脚本中⽤的。%a%是普通变量。
options可以为:delims=XX(指分隔符集);tokens=x,y,m-n(指每⾏的哪⼀个符号被传递到每个迭代的 for 本⾝)嫌稿;skip=n(行者老指在⽂件开始时忽略的⾏数)。
参数/f的效果:for会先读出command1执⾏后得到的所有结果,并把它作为⼀个集合,并且以每⼀⾏作为⼀个元素传⼊参数%variable。
4.1.4 批处理顺序执⾏多条命令
命令1 &命令2 &命令3 ... (⽆论前⾯命令是否故障,照样执⾏后⾯)
命令1 &&命令2 &&命令3....(仅当前⾯命令成功时,才执⾏后⾯)
命令1 || 命令2 || 命令3.... (仅当前⾯命令失败时,才执⾏后⾯)
4.1.5 Bat批处理之if详解
判断字符串是否相等的时候,if会区分⼤⼩写。若不想区分⼤⼩写,则需要if /i "字符串1"=="字符串2" 的格式。
判断两个数值之间的⼤⼩关系时,由于在批处理中>和<为重定向符号,这就意味着我们不能⽤>来表⽰⼤于,<表⽰⼩于。
EQU - 等于
NEQ - 不等于
LSS - ⼩于
LEQ - ⼩于或等于
GTR - ⼤于
GEQ - ⼤于或等于
4.2 customize Tools menu
关于customize Tools menu对话框的详细内容可以参考以下⽂档引⽤:
Menu Content
Text shown in the Tools menu. This line may contain Key Codes and File Codes. Shortcuts are defined with an ampersand ( &) character. The current selected menu line allows you to specify the options listed below.
Prompt for Arguments
If enabled, a dialog box opens at the time you invoke the menu item that allows you to specify the command line arguments for the user program.
Run Minimized
Enable this option to execute the application with minimized window.
Run Independent
If enabled, µVision will not wait for the completion of the external application. If disabled, µVision waits until the external application terminates. The output of the external application will be written in the Output Window — Build page. The output can be made clickable to jump to a specific location in a source code. The output format shall be same as described in Clickable Output section in User dialog. Command
Program file that is executed with the selected menu item. You can use environment variables as described in Key Sequences to pass path arguments.
Initial Folder
Current working folder for the application program. If this entry is empty, µVision uses the base folder of the project file.
Arguments
Command line arguments that are passed to the application program. You may use Key Sequences to pass arguments.
All Entries
Export or Import Tools menu customization settings. Use this to share current settings across PCs.
4.3 Argument
关于Argument可以参考,本⽂⽤到的参数有:
符号意义例⼦
!E带有扩展名和相对路径的⽂件名.\main\main.c
%P当前项⽬的⽂件名PROJECT1.UVPROJX
关于图上Keil的其他插件,有问题欢迎咨询。
5. 总结
第⼀次在博客园发布⽂章,由于博主能⼒有限,⽂中可能存在描述不正确,欢迎指正、补充!感谢您的阅读。如果⽂章对您有⽤,那么请轻轻点个赞,以资⿎励。
¥
5.9
百度文库VIP限时优惠现在开通,立享6亿+VIP内容
立即获取
Keil工具_更改文件只读属性
Keil⼯具_更改⽂件只读属性
1. 前⾔
Keil给⽤户留了⼀个插⼊⾃定义组件的选项。通过插件⽤户可以使⽤外部的编辑器(如Notepad++、VScode等),也可以添加其他⾃定义功能。可以参考这篇⽂章。
为了避免键盘误 *** 作破坏代码,我习惯于锁定(只读)已完成的源⽂件。但每次都要在资源管理器修改属性很⿇烦。本⽂介绍的这个批处理可以在Keil软件内轻松⾃由切换源⽂件的只读状态。(⽹上查了许久都找不到,只能⾃⼰写了 )
第 1 页
插件使⽤批处理,理论上不限定软件版本。IAR没有测试,如果参数⼀致也是可⾏的。
2. 效果
先来看看效果
3. 快速开始
3.1 代码
复制代码到⼀个新建的txt⽂件中,更改后缀名为.bat,放到任意⽂件夹下。
@echo off
attrib -A %1 /s
您好,Keilconst变量可以放到ROM中,具体步骤如下:1.在Keil中创建一个Keilconst变量,并将其设置为只读;
2.将该变量放入ROM中,可以使用Keil的“Options for Target”功能来实现;
3.在Keil中编培孙写程序,使用该变量;
4.将陪中缓程序编译,并将其链接芦模到ROM中;
5.将程序下载到ROM中,完成Keilconst变量的放入ROM的 *** 作。
希望我的回答能够帮助您解决问题。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)