Certutil -hashfile :在拖放文件夹中处理多个文件



我正在尝试创建一个批处理脚本,该脚本在文件夹中的每个文件上运行certutil -hashfile MD5并将输出写入文件。

我在下面有此代码,除了它仅适用于当前文件夹中的文件, 我希望它工作,当文件夹被拖放到批处理文件中时.bat它只处理该文件夹。

for %%a in (*) do certutil -hashfile %%a MD5 >> MD5_log.txt

还有没有办法让它在certutil输出文本的迭代之间输出日志文件中的空格?

其实很简单!


只需将(*)更改为("%~1*")或其他命令行参数即可。如果您有多个拖放文件夹,请执行"%~1*" "%~2*"等。使用引号("(可以防止空间问题。所以现在引用路径。%%a变成%%~a,这意味着取消报价。

或者,您可以设置一个包含所有路径的变量并逐个处理它们。

结果:

for %%a in ("%1*") do certutil -hashfile "%%~a" MD5 >> MD5_log.txt

将以下文件存储为.bat文件,并根据需要更改测试文件夹和输出文件。

@ECHO OFF
setlocal enabledelayedexpansion
:: Set the variables for this script.
set testfolder=C:Test
set outputfile=md5_files.txt
cd %testfolder%
echo > %outputfile%
for %%f in (".*.*") do (
certutil -hashfile %%f SHA1 >>%outputfile%
echo %%ff
)

PAUSE

相关内容

  • 没有找到相关文章

最新更新