windows下生成摘要bat脚本

关键代码: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文件中实现对空格分割的字符串的处理

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值