您的位置:首页 > 其它

windows下生成摘要bat脚本

2017-03-12 12:14 176 查看
关键代码:certutil -hashfile file_name sum_name

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

@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

效果如下:



参考博客:在BAT文件中实现对空格分割的字符串的处理
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: