如何使md5sum命令只显示没有批处理路径的哈希值?

时间:2016-09-20 10:30:03

标签: batch-file md5sum

我有以下代码来检查我的图像的md5sum:

for /f "delims=" %%i in ('md5sum U:/imagingusb/%UserInputPath%/Image/usbimage.iso') do set output=%%i
for /f "delims=" %%i in ('md5sum /dev/sdb1') do set outputusb=%%i
echo %output%
echo %outputusb%

我得到的输出是:

9a4a227e872f7130652f403c568d0081 */dev/sdb1
9a4a227e872f7130652f403c568d0081 *U:/imagingusb/dfgg/Image/usbimage.iso

如何在没有ISO映像路径的情况下仅输出哈希值? 就是这样:

9a4a227e872f7130652f403c568d0081 
9a4a227e872f7130652f403c568d0081

1 个答案:

答案 0 :(得分:1)

默认情况下,for会在空格和制表符上循环标记化输出。如果您未指定要返回的令牌,则只能使用第一个令牌(for /f %%A in ("this is a string") do echo %%A返回thisecho %%B返回%B而不是is })。

要自行获取md5校验和,您只需删除代码中的"delims="

for /f %%i in ('md5sum U:/imagingusb/%UserInputPath%/Image/usbimage.iso') do set output=%%i
for /f %%i in ('md5sum /dev/sdb1') do set outputusb=%%i
echo %output%
echo %outputusb%

如果由于某种原因需要将路径用于其他内容,则可以将它们存储在单独的令牌中(在此示例中为%%j),如下所示:

for /f "tokens=1,*" %%i in ('md5sum U:/imagingusb/%UserInputPath%/Image/usbimage.iso') do set output=%%i
for /f "tokens=1,*" %%i in ('md5sum /dev/sdb1') do set outputusb=%%i
echo %output%
echo %outputusb%