windows下生成摘要bat脚本
2017-03-12 本文已影响233人
追逐丶
关键代码: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
效果图