1

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

我在下面有这段代码,除了它只适用于当前文件夹中的文件,我希望它能够工作,以便当一个文件夹被拖放到批处理文件 .bat 中时,它只处理该文件夹。

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

还有一种方法可以让它在certutil输出文本的迭代之间输出日志文件中的空格?

4

2 回答 2

1

其实很简单!


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

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

结果:

for %%a in ("%1\*") do certutil -hashfile "%%~a" MD5 >> MD5_log.txt
于 2017-07-27T10:46:16.830 回答
-1

将以下文件存储为 .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
于 2020-01-24T09:09:29.590 回答