batch-file - 批处理文件 - 循环中的空变量值
问题描述
我正在编写一个批处理文件,该文件遍历整个目录(包括所有子目录)并将找到的每个文件的校验和打印到 checksum.txt 文本文件中。
似乎我用粗体表示的两个 ECHO 语句都返回了变量 count 和 var 的空值。最终这意味着生成的 checksum.txt 文件是空的。
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 ****************************************** %count% %var1%
)
echo ****************************************** %var1%
SET FILECHECKSUM=%var1% %var2%
>>"CHECKSUM.TXT" echo(%FILECHECKSUM%
)
timeout /t -1
解决方案
谢谢 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
推荐阅读
- android - 我无法通过 WorkManager 获取 enqueueUniquePeriodicWork 的StatusesByTag
- xpath - 如何获取元素的xPath
- php - Codeigniter rest api 路由问题
- c++ - 如何通过将它们的名称存储在makefile中的变量中来编译不同的文件
- mongodb - 从 MongoDB 4.0 中删除重复项
- java - 函数不更新变量
- python - 如何在python中对这个for循环进行矢量化?
- ios - 转换 base 64 时图像质量下降
- sql - 根据唯一 ID 更新所有行的值 - Oracle
- git - 从主分支中删除所有内容