windows下生成摘要bat脚本

关键代码:certutil -hashfile file_name sum_name

下面不多讲述,看脚本和看效果图
bat脚本:

@echo off
title 摘要生成
setlocal enabledelayedexpansion
::color 0D
::mode con cols=50 lines=30

echo =====================================
echo         摘要生成
echo.
echo    PS:大文件请稍等片刻
echo       拉入多个文件请用空格隔开
echo       注意是文件,不是文件夹
echo =====================================
echo.
echo         1、MD5
echo         2、SHA1
echo         3、SHA
echo         c、退  出
echo.
:loop

set /p var=请选择要进行的操作,然后按回车:
if "%var%" == "" set /a var=1
if not "%var%" == """" set var=%var:~0,1%
for %%t in (1,2,3,c) do if %%t==%var% set /a temp=1
rem 这个for循环检测输入是否是在这个set中

if not %temp%==1 set /a var=1
rem 如果不在set默认值为1

if %var% == c goto mExit
rem 如果选择的是c的话直接退出

echo ----你选择的操作为:%var%

set /p file_path=请把文件拉入命令行:

if "%file_path%"=="" goto mExit
REM 判断“空”防止直接按回车键

echo ------------------------------------------------

:mFor
for /f "tokens=1,*" %%a in ("%file_path%") do (
    REM 这里可以替换成自己的处理程序,现在只是简单地显示值
    rem echo   a = %%a
    
    if "%file_path%"=="""" goto mExit
    REM 为"双引号就停止"
    if %var% == 1 certutil -hashfile %%a MD5
    if %var% == 2 certutil -hashfile %%a SHA1
    if %var% == 3 certutil -hashfile %%a SHA256

    
    echo ------------------------------------------------
    REM 将剩余字符串赋值给str变量
    set file_path=%%b
    rem echo %file_path%
    REM pause
    if not "%file_path%"=="""" goto mFor
    
)

goto mExit

:mError
echo 输入操作数有误
goto mExit

:mExit
goto loop

pause
rem 参考博客:http://blog.sina.com.cn/s/blog_40270a8101014mhe.html
windows下生成摘要bat脚本_第1张图片
效果图

你可能感兴趣的:(windows下生成摘要bat脚本)