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 批处理文件-循环中的空变量值_Batch File_Variables - Fatal编程技术网

Batch file 批处理文件-循环中的空变量值

Batch file 批处理文件-循环中的空变量值,batch-file,variables,Batch File,Variables,我正在编写一个批处理文件,它遍历整个目录(包括所有子目录),并将找到的每个文件的校验和打印到checksum.txt文本文件中 我用粗体表示的两个ECHO语句似乎都返回变量count和var的空值。最终这意味着创建的checksum.txt文件是空的。 谢谢Stephan、HackingAddict1337和Squashman 我现在已经使用下面的代码使它工作了 setlocal ENABLEDELAYEDEXPANSION For /R "C:\Users\MyName\Desktop\So

我正在编写一个批处理文件,它遍历整个目录(包括所有子目录),并将找到的每个文件的校验和打印到checksum.txt文本文件中

我用粗体表示的两个ECHO语句似乎都返回变量count和var的空值。最终这意味着创建的checksum.txt文件是空的。
谢谢Stephan、HackingAddict1337和Squashman

我现在已经使用下面的代码使它工作了

setlocal ENABLEDELAYEDEXPANSION

For /R "C:\Users\MyName\Desktop\SourceDir" %%G in (*) do (
SET /A count=1
    FOR /F "tokens=* USEBACKQ" %%F IN (`certutil -hashfile "%%G" sha256`) DO (
            SET var!count!=%%F
            SET /a count=!count!+1
echo xxxxxxxxxxxxxxx !count! !var1!
        )

SET FILECHECKSUM=!var1! , !var2!

>>"CHECKSUM.csv" echo(!FILECHECKSUM!

)


timeout /t -1

您似乎知道,所以为什么不使用它呢?
SET/A count=!伯爵+1
-->设置/a“count+=1”我建议使用
>>CHECKSUM.TXT(for…do(for…do(…))
,因为它只打开文件一次。在您的代码中,文件在每次
迭代中打开和关闭。这将加快执行速度,特别是当有许多文件需要解析时。
setlocal ENABLEDELAYEDEXPANSION

For /R "C:\Users\MyName\Desktop\SourceDir" %%G in (*) do (
SET /A count=1
    FOR /F "tokens=* USEBACKQ" %%F IN (`certutil -hashfile "%%G" sha256`) DO (
            SET var!count!=%%F
            SET /a count=!count!+1
echo xxxxxxxxxxxxxxx !count! !var1!
        )

SET FILECHECKSUM=!var1! , !var2!

>>"CHECKSUM.csv" echo(!FILECHECKSUM!

)


timeout /t -1