for /f "tokens=2 delims=:\" %%i in ('wmic logicaldisk get caption^,size free') do ( 此时不应有 %%i。
时间: 2024-09-27 13:03:13 浏览: 54
批处理:FOR参数F之tokens详解.pdf
看起来你可能在解释一个批处理(CMD或PowerShell)中的脚本片段,`for /f`是一个用于读取命令行输出并解析成变量的批处理命令。在这个例子中,`tokens=2 delims=:\"`是在指定`wmic logicaldisk get caption^,size free`命令的结果中,只保留从冒号`:`和双引号`"`之间的第二个字段(假设`caption`在前,`size`在后)。
然而,你的脚本似乎缺少了将结果赋给实际变量的部分。通常你会看到类似这样的结构:
```cmd
for /f "tokens=2 delims=:\" %%i in ('wmic logicaldisk get caption^,size free ^| findstr /R "^$"') do (
echo %%i contains the second field from the wmic output
)
```
在这个例子中,`findstr /R "^$"`是为了过滤掉空行(因为`wmic`的输出可能会有一些空白行)。如果没有`do`后面的命令,`%%i`不会有任何值,所以你可能需要根据实际需求设置后续的操作,比如存储到文本文件或进一步处理数据。
如果你说不应该有`%%i`,那可能是指不需要处理单个令牌,而是想要整个`wmic`命令的输出,可以直接使用`set`命令接收所有内容:
```cmd
wmic logicaldisk get caption^,size free > disk_info.txt
```
这会直接把输出保存到名为`disk_info.txt`的文件中。
阅读全文