批处理中 如何比较 数字大小
2个回答
展开全部
还没人来解释 我就大概讲一下了
@echo off&setlocal enabledelayedexpansion 关回显开变量延迟
for /r %%a in (*.*) do ( 循环一个个打印当前目录及子目录下的所有文件
set nameis=%%a 把文件名给变量nameis
set sizeis=%%~za 把文件大小给变量sizeis
echo !nameis!大小为:!sizeis!
if not defined %%~za (set %%~za=A) else (call :delornot)
如果没有定义%%~za 就把%%~za当做变量定义为A 否则跳到 :delornot
意思就是 首先:每个文件基本上大小(字节)都是不同的
把这个大小当做变量名(数字也可以做变量名的)判断它定义过么 没有的话我们就定义它的值为A 这样后面有同样大小的文件时 这个大小前面已经当做变量定义了 所以就执行else后面的跳转
)
echo 处理完毕。
pause>nul&&goto :eof
:delornot 前面我们已经说了 出现同样大小的情况就跳到这(基本上大小相同就判断为重复文件)
set /p cho=!nameis!是重复的文件,是否删除(Y/N):
if /i "!cho!"=="y" del "!nameis!"/f/q&set sizeis=A 输入的是y旧执行删除操作
if /i "!cho!"=="n" (goto :eof) else (echo 输入有误。&&goto delornot)
输入的是n就不删除 输入其他再跳到:delornot
总结: 用for /r 打印当前目录的所有文件 通过把每个文件的大小当做变量定义值 来判断是否有大小相同的情况 有就跳到提示删除部分
表达能力有限 。。。
@echo off&setlocal enabledelayedexpansion 关回显开变量延迟
for /r %%a in (*.*) do ( 循环一个个打印当前目录及子目录下的所有文件
set nameis=%%a 把文件名给变量nameis
set sizeis=%%~za 把文件大小给变量sizeis
echo !nameis!大小为:!sizeis!
if not defined %%~za (set %%~za=A) else (call :delornot)
如果没有定义%%~za 就把%%~za当做变量定义为A 否则跳到 :delornot
意思就是 首先:每个文件基本上大小(字节)都是不同的
把这个大小当做变量名(数字也可以做变量名的)判断它定义过么 没有的话我们就定义它的值为A 这样后面有同样大小的文件时 这个大小前面已经当做变量定义了 所以就执行else后面的跳转
)
echo 处理完毕。
pause>nul&&goto :eof
:delornot 前面我们已经说了 出现同样大小的情况就跳到这(基本上大小相同就判断为重复文件)
set /p cho=!nameis!是重复的文件,是否删除(Y/N):
if /i "!cho!"=="y" del "!nameis!"/f/q&set sizeis=A 输入的是y旧执行删除操作
if /i "!cho!"=="n" (goto :eof) else (echo 输入有误。&&goto delornot)
输入的是n就不删除 输入其他再跳到:delornot
总结: 用for /r 打印当前目录的所有文件 通过把每个文件的大小当做变量定义值 来判断是否有大小相同的情况 有就跳到提示删除部分
表达能力有限 。。。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询