问题描述
例如,这段代码工作正常
wmic MEMORYCHIP get Capacity | findstr [0-9] >> D:\ram-cpu.txt
并给出存储库容量作为输出
但是如果我把这个命令循环起来
Setlocal EnableDelayedExpansion
@SET /a sl_counter=0
@FOR /F "usebackq" %%a IN (`wmic MEMORYCHIP get Capacity | findstr [0-9]`) DO (
@ECHO SLOT !sl_counter! %%a >> D:\ram-cpu.txt
@SET /a sl_counter=sl_counter+1
)
我收到错误
Unexpected: |.
D:\>@FOR /F "usebackq" %a IN (`wmic MEMORYCHIP get Capacity | findstr [0-9]`) DO
(
我想我需要添加或修复一些语法,但我不知道该怎么做。
解决方法
当您在 |
命令中使用 ^|
时,您应该将 for
转义为 @FOR /F "usebackq" %a IN (`wmic MEMORYCHIP get Capacity ^| findstr [0-9]`) DO echo %a
命令行:
@echo off
@FOR /F "usebackq" %%a IN (`wmic MEMORYCHIP get Capacity ^| findstr [0-9]`) DO Set "Memory=%%a"
echo %Memory%
pause
批处理文件:
<RNDateTimePicker mode="time" />
进一步阅读:How-to: Escape Characters,Delimiters and Quotes at the Windows command line.