Windows 无法在批处理文件中显示变量的值

Windows 无法在批处理文件中显示变量的值,windows,variables,batch-file,Windows,Variables,Batch File,我有一个批处理文件来计算文件夹中特定文件的数量。内容如下: set xx = %DATE:~10,4%%DATE:~4,2%%DATE:~7,2% set count=dir C:\Archive\*%xx%.csv | find "File(s)" echo %count% 但最后一个命令的输出显示为 echo ECHO is on 我在这里做错了什么??有人能帮忙吗?要执行命令并检索其输出,您需要使用for/f命令(请参见获取/?帮助) 这将以裸格式(无标题、摘要和其他文件信息)对列表中

我有一个批处理文件来计算文件夹中特定文件的数量。内容如下:

set xx = %DATE:~10,4%%DATE:~4,2%%DATE:~7,2%
set count=dir C:\Archive\*%xx%.csv | find "File(s)"
echo %count%
但最后一个命令的输出显示为

echo
ECHO is on

我在这里做错了什么??有人能帮忙吗?

要执行命令并检索其输出,您需要使用
for/f
命令(请参见
获取/?
帮助)


这将以裸格式(无标题、摘要和其他文件信息)对列表中不包含文件夹的所需文件执行dir命令,而不是搜索
文件
(在不同的windows区域设置中,文本不同),它使用
查找
来计算(
/c
)非空行数(
/v”“
)。输出是一个存储在可替换参数
%%a
中的数字,然后复制到所需变量中,非常感谢。这在windows 7上有效。但当我在windows server上尝试相同操作时,它会抛出一个错误,如“查找”未被识别为内部或外部变量command@user1407668,
find.exe
是MS-DOS时代的标准元素。如果路径设置不正确,请尝试将对
find
的调用替换为
find.exe
%systemroot%\system32\find.exe“
set "xx=%DATE:~10,4%%DATE:~4,2%%DATE:~7,2%"
for /f %%a in ('dir /a-d /b "c:\Archive\*%xx%.csv" ^| find /c /v ""') do set "count=%%a"
echo %count%