批处理文件学习笔记

@ECHO OFF
color 0b
echo ==============================================================
echo  欢迎使用傻瓜式签名工具,可以同时签名多个zip文件和多个apk文件
echo.
echo         请保持文件夹内容完整性,不要删除和修改任何文件
echo.
echo       签名好的文件将放在 Signed文件夹,有问题请联系vanck                        
echo ==============================================================
echo.

set filename=*.zip *.apk

if not exist auto-sign-vanck-v1.1.bat goto vend

echo 搜索并签名文件...............

if not exist .\Signed mkdir .\Signed

for /f "delims=" %%i in ('dir/b %filename%') do (
java -jar signapk.jar testkey.x509.pem testkey.pk8 "%%i" ".\signed\%%~ni_signed%%~xi")

echo.
echo.
echo.
echo 签名完毕,按任意键退出.
goto end

:vend
echo.
echo.
echo.
echo 文件被破坏,请重新下载解压,不要删除和修改任何文件
goto end

:end
pause >nul
EXIT

for /f "delims=" %%i in ("%cd%") do set folder=%%~ni 请问这段代码的意思,批处理。

%cd%——当前路径
for /f "delims=" %%i in ("%cd%") do——逐行取双引号中的内容。
因为就一行,所以这里就是将%cd%赋值给%%i
%%~ni将%%i扩充到一个文件名
意思就是取%%i路径中最后一个\后的文件名。
%cd%最后的一个文件名就是当前文件夹的名字。
所以这行的意思就是取当前路径的文件夹名并赋给folder
不用这么多,下面这样也可以的: 
for %%i in ("%cd%") do set folder=%%~ni
%~nI        - 仅将 %I 扩展到一个文件名
%~xI        - 仅将 %I 扩展到一个文件扩展名
@echo off
set PATH=%CD%;%PATH%;
java -jar "%~dp0\apktool.jar" %1 %2 %3 %4 %5 %6 %7 %8 %9
%~dp0 “d”为Drive的缩写,即为驱动器,磁盘、“p”为Path缩写,即为路径,目录
cd是转到这个目录,不过我觉得cd /d %~dp0 还好些

选项语法:

    ~0         - 删除任何引号("),扩充 %0
    %~f0        - 将 %0 扩充到一个完全合格的路径名(“f”是file,即文件)
    %~d0        - 仅将 %0 扩充到一个驱动器号
    %~p0        - 仅将 %0 扩充到一个路径
    %~n0        - 仅将 %0 扩充到一个文件名(“n”是name 文件名)
    %~x0        - 仅将 %0 扩充到一个文件扩展名
    %~s0        - 扩充的路径只含有短名(“s”为Short,短的)
    %~a0        - 将 %0 扩充到文件的文件属性(“a”为attribute,即属性)
    %~t0        - 将 %0 扩充到文件的日期/时间(“t”time)
    %~z0        - 将 %0 扩充到文件的大小(Size 大小)
    %~$PATH:0   - 查找列在路径环境变量的目录,并将 %0 扩充
                  到找到的第一个完全合格的名称。如果环境变量名
                  未被定义,或者没有找到文件,此组合键会扩充到
                  空字符串

可以组合修饰符来得到多重结果:

    %~dp0       - 仅将 %0 扩充到一个驱动器号和路径
    %~nx0       - 仅将 %0 扩充到一个文件名和扩展名
    %~fs0       - 仅将 %0 扩充到一个带有短名的完整路径名
    %~dp$PATH:0 - 查找列在路径环境变量的目录,并将 %I 扩充
                  到找到的第一个驱动器号和路径。
    %~ftza0     - 将 %0 扩充到类似输出线路的 DIR

%0为当前批处理文件
如果0换成1为第一个文件,2为第2个
%0代指批处理文件自身
%~d0 是指批处理所在的盘符
%~dp0 是盘符加路径
cd %~dp0 就是进入批处理所在目录了
详细请参考call /?
实现变量自加
 
for /f %%i in ('dir/b/a-d apk *.apk')do set/a fn+=1
echo %fn%个待处理apk
数字循环示例:
for /l %%i in (1,1,5) do @echo %%i --输出1 2 3 4 5

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值