
批处理 for的问题
那位大虾帮忙分析下这段代码:for%%iin("%tmp%encrypt.tmp")do(echo%%~zi>nul2>nulsetsize=%%~zisetnum=!s...
那位大虾帮忙分析下这段代码:
for %%i in ("%tmp%encrypt.tmp") do (
echo %%~zi >nul 2>nul
set size=%%~zi
set num=!size:~-1!
set /a mod=!num!%%2
if !mod! equ 0 (goto even) else (goto odd)
)
这段命令do()中的命令都不太明白 希望能帮忙详细分析哈每句话!! 展开
for %%i in ("%tmp%encrypt.tmp") do (
echo %%~zi >nul 2>nul
set size=%%~zi
set num=!size:~-1!
set /a mod=!num!%%2
if !mod! equ 0 (goto even) else (goto odd)
)
这段命令do()中的命令都不太明白 希望能帮忙详细分析哈每句话!! 展开
2个回答
展开全部
set size=%%~zi
rem 将文件的大小数据赋值给size,%~zi是for中的扩展参数,详情for /?
set num=!size:~-1!
rem 提取变量最后一个字符赋值给num,这里用!!来代替%%是应为启用了变量延迟
set /a mod=!num!%%2
rem 将变量num数值运算的结果赋值给mod
if !mod! equ 0 (goto even) else (goto odd)
rem equ改成==最好,如果mod等于0就跳转到even,否则跳转到odd
rem 将文件的大小数据赋值给size,%~zi是for中的扩展参数,详情for /?
set num=!size:~-1!
rem 提取变量最后一个字符赋值给num,这里用!!来代替%%是应为启用了变量延迟
set /a mod=!num!%%2
rem 将变量num数值运算的结果赋值给mod
if !mod! equ 0 (goto even) else (goto odd)
rem equ改成==最好,如果mod等于0就跳转到even,否则跳转到odd
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询