Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file certutil-hashfile:在拖放文件夹中处理多个文件_Batch File_For Loop_Md5_Certutil - Fatal编程技术网

Batch file certutil-hashfile:在拖放文件夹中处理多个文件

Batch file certutil-hashfile:在拖放文件夹中处理多个文件,batch-file,for-loop,md5,certutil,Batch File,For Loop,Md5,Certutil,我试图创建一个批处理脚本,在文件夹中的每个文件上运行certutil-hashfile MD5,并将输出写入文件 我有下面的代码,但它只对当前文件夹中的文件有效, 我希望它的工作方式是,当一个文件夹被拖放到批处理文件中时,它只处理该文件夹 for %%a in (*) do certutil -hashfile %%a MD5 >> MD5_log.txt 还有一种方法可以让它在certutil输出文本的迭代之间输出日志文件中的空格吗?实际上非常简单 只需将(*)更改为(“%~1

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

我有下面的代码,但它只对当前文件夹中的文件有效, 我希望它的工作方式是,当一个文件夹被拖放到批处理文件中时,它只处理该文件夹

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

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

实际上非常简单


只需将
(*)
更改为
(“%~1\*”)
或其他命令行参数。如果您有多个拖放文件夹,请使用引号(
”)等操作。使用引号(
)可以防止出现空间问题。因此,路径现在被引用。
%%a
将变成
%%a
,这意味着取消引用

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

结果:

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

其实很简单


只需将
(*)
更改为
(“%$1\*”
或其他命令行参数。如果您有多个拖放文件夹,请执行
“%$1\*”、“%$2\*”
等操作。使用引号(
)可以防止出现空间问题。因此,现在引用路径。而
%%a
变成
%%~a
,意思是取消报价

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

结果:

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

将以下文件存储为.bat文件,并根据需要更改testfolder和outputfile

@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

将以下文件存储为.bat文件,并根据需要更改testfolder和outputfile

@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

这根本解决不了问题。问题是在批处理文件上拖放一个文件夹,但这并不能解决问题。问题是在批处理文件上拖放文件夹