批处理文件学习笔记

来源:互联网 发布:零基础学c语言看什么书 编辑:程序博客网 时间:2024/05/18 00:16
@ECHO OFFcolor 0becho ==============================================================echo  欢迎使用傻瓜式签名工具,可以同时签名多个zip文件和多个apk文件echo.echo         请保持文件夹内容完整性,不要删除和修改任何文件echo.echo       签名好的文件将放在 Signed文件夹,有问题请联系vanck                        echo ==============================================================echo.set filename=*.zip *.apkif not exist auto-sign-vanck-v1.1.bat goto vendecho 搜索并签名文件...............if not exist .\Signed mkdir .\Signedfor /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:vendecho.echo.echo.echo 文件被破坏,请重新下载解压,不要删除和修改任何文件goto end:endpause >nulEXIT

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 offset 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+=1echo %fn%个待处理apk
数字循环示例:
for /l %%i in (1,1,5) do @echo %%i  --输出1 2 3 4 5
原创粉丝点击