defrag C: /A /V > %Temp%\defrag.txt FOR /F "delims=" %%a in ('findstr /C:"Total fragmented space" "%Temp%\defrag.txt" ') do SET "fragmentation=%%a" ECHO %fragmentation%
这段代码运行良好,但与文件中的空格相呼应。这是输出:
--------------------------------------------------------------------- Total C Fragmentation: Total fragmented space = 3%
有办法摆脱这些多余的空间吗?我一直试着更加精确地搜索该搜索的内容,方法是一直往上加,直到标记为止,但没有任何运气。
感谢大家的帮助和感谢您的时间!
发布于 2014-10-24 19:39:19
可以使用空格作为分隔符,并检索分隔元素。
FOR /F "tokens=1-8" %%a in (
'findstr /C:"Total fragmented space" "%Temp%\defrag.txt" '
) do SET "fragmentation=%%a %%b %%c %%d %%e %%f %%g %%h"或者您可以直接使用等号作为分隔符,获取值,然后输出所需的内容。
FOR /F "tokens=2 delims==" %%a in (
'findstr /C:"Total fragmented space" "%Temp%\defrag.txt" '
) do SET "fragmentation=%%a"
echo Total C Fragmentation: Total fragmented space =%fragmentation%在这两种情况中的任何一种情况下,都可以避免临时文件,因为for命令可以运行命令并检索其输出。
FOR /F "tokens=2 delims==" %%a in (
'defrag C: /A /V ^| findstr /C:"Total fragmented space" '
) do SET "fragmentation=%%a"https://stackoverflow.com/questions/26554730
复制相似问题