我有以下代码来检查我的图像的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
答案 0 :(得分:1)
默认情况下,for
会在空格和制表符上循环标记化输出。如果您未指定要返回的令牌,则只能使用第一个令牌(for /f %%A in ("this is a string") do echo %%A
返回this
和echo %%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%