Batch file 如何在循环中将FINDSTR值设置为变量

Batch file 如何在循环中将FINDSTR值设置为变量,batch-file,Batch File,所以我在设置一个变量时遇到了一个问题,这个变量中有FINDSTR值。我必须设置变量,以便将值输出到所需的文本文件中 我已经尝试将变量设置为循环得到的每个findstr值,但是输出也不符合我的期望 set /p tanggal="Masukan Bulan/Tahun: " echo. set /p namaService="Masukan services path: " setlocal enabledelayedexpansion echo Services,tanggal,hit &

所以我在设置一个变量时遇到了一个问题,这个变量中有FINDSTR值。我必须设置变量,以便将值输出到所需的文本文件中

我已经尝试将变量设置为循环得到的每个findstr值,但是输出也不符合我的期望

set /p tanggal="Masukan Bulan/Tahun: "

echo.
set /p namaService="Masukan services path: "

setlocal enabledelayedexpansion

echo Services,tanggal,hit >> Summary_%tanggal:/=-%_%namaService:/=-%.txt

FOR /L %%A IN (1,1,31) DO (
     if %%A LEQ 9 (
        set "jumlahHit = FINDSTR /R /N "0%%A/%tanggal%.*%namaService%" access* | FIND /C ":""
        echo !jumlahHit! >> Summary_%tanggal:/=-%_%namaService:/=-%.txt
     ) else (
        set "jumlahHit = FINDSTR /R /N "%%A/%tanggal%.*%namaService%" access* | FIND /C ":""
        echo !jumlahHit! >> Summary_%tanggal:/=-%_%namaService:/=-%.txt
     )
)
echo Total : >> Summary_%tanggal:/=-%_%namaService:/=-%.txt
FINDSTR /R /N "%tanggal%.*%namaService%" access* | FIND /C ":" >> Summary_%tanggal:/=-%_%namaService:/=-%.txt
我希望输出是findstr result的某个值,但文件中的输出表示echo已关闭

Services,tanggal,hit 
ECHO is off.
ECHO is off.
ECHO is off.
ECHO is off.
ECHO is off.
ECHO is off.
ECHO is off.
ECHO is off.
ECHO is off.
ECHO is off.
ECHO is off.
ECHO is off.
ECHO is off.
ECHO is off.
ECHO is off.
ECHO is off.
ECHO is off.
ECHO is off.
ECHO is off.
ECHO is off.
ECHO is off.
ECHO is off.
ECHO is off.
ECHO is off.
ECHO is off.
ECHO is off.
ECHO is off.
ECHO is off.
ECHO is off.
ECHO is off.
ECHO is off.
Total : 
152720
这是设置findstr循环结果的其他方法吗?

您有两个问题:

变量名 变量名称与您键入的名称完全相同:

set variable = string
这将
变量{space}
设置为值
{space}字符串
。因此,要打印该变量,您需要

echo %variable %
这就是为什么您的行中充满了
ECHO关闭的原因。


不能通过内联命令设置变量值 我的意思的一个例子:

set variable=dir
echo %variable%
:: output is "dir"
有关如何将变量值设置为命令输出的信息,请参见