for循环
@echo off
set "signtool=C:\Program Files (x86)\Windows Kits\10\App Certification Kit\1.exe"
set "cert=C:\Users\admin\Desktop\certificate\2.cer"
set "folder=C:\Users\admin\Desktop"
for /r "%folder%" %%f in (*.exe *.dll *.cab) do (
echo Signing %%f...
"%signtool%" sign /f "%cert%" /tr http://timestamp.digicert.com /td sha256 /fd sha256 /a "%%f"
)
echo Done.
pause
逐行解释:
第1行:注释
第二行:设置signtool变量
第三行:设置cert变量
第四行:设置folder参数值
第5行:for循环
for循环的用法:for循环的语法
/r:for循环的参数,代表递归查找文件
参数传递
三种参数传递方法:
- %1 ,%2,。。。 ,%9,从%1到%9。%0 指批处理文件本身,包括完整的路径和扩展名。
- % ~ 1,%~ 2,。。。, % ~ 9 ,从 %~ 1到%~9.
注意:1和2的区别是,如果参数带引号,那么1原样输出,2则会把引号去掉。 - %*代表所有的参数
回显
@置于语句前则该条语句不会回显(无视echo on)
echo off关闭回显功能,直到出现echo on,但其本身会回显,故其之前往往和@一起使用,即@echo off(关闭所有回显功能)
特殊符号
%* 从第一个参数开始的所有参数
%~ 当前目录