keil程序怎样修改别人工程的只读
发布网友
发布时间:2023-06-12 09:25
我来回答
共1个回答
热心网友
时间:2024-02-11 04:42
复制代码到一个新建的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项,这样就不会有批处理的黑窗弹出。
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" 的格式。
判断两个数值之间的大小关系时,由于在批处理中>和<为重定向符号,这就意味着我们不能用>来表示大于,<表示小于。