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

时间:2014-09-26 09:18:55

标签: 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

我在这做错了什么?有人可以帮忙吗?

1 个答案:

答案 0 :(得分:2)

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

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%

这将为所有文件执行dir命令,不包含列表中的文件夹,采用裸格式(无标题,摘要和无附件文件信息),而不是搜索File(s)(在不同的窗口中)区域设置文本不同),它使用find来计算(/c)非空行数(/v "")。输出是一个存储在for可替换参数%%a中的数字,然后复制到所需的变量