Batch file EnableDelayedExpansion在ECHO中未按预期工作
如果之前有人问过我,请原谅,但我的搜索结果与此完全不同 我有一个批处理文件,它使用for循环遍历一个逗号分隔的文件,该文件的格式如下 client, sum client, sum client, sum client, sumBatch file EnableDelayedExpansion在ECHO中未按预期工作,batch-file,cmd,Batch File,Cmd,如果之前有人问过我,请原谅,但我的搜索结果与此完全不同 我有一个批处理文件,它使用for循环遍历一个逗号分隔的文件,该文件的格式如下 client, sum client, sum client, sum client, sum 路径名,客户端 批处理的目的是将路径传递给logparser命令,该命令反过来对一列数据求和。我正在尝试将我的结果发送到一个文件,其中客户端和结果列在同一行,如下所示 client, sum client, sum client, sum client, sum 我有一
路径名,客户端
批处理的目的是将路径传递给logparser命令,该命令反过来对一列数据求和。我正在尝试将我的结果发送到一个文件,其中客户端和结果列在同一行,如下所示
client, sum
client, sum
client,
sum
client,
sum
我有一种感觉,这是一些愚蠢的简单,但经过几个小时的尝试,我想我错过了它
为清晰起见,请编辑:
- 问题更多的是在使用echo时添加了CRLF 陈述我的搜索结果显示,使用“EnableDelayedExpansion”应该 解决问题。。。我知道使用echo会导致CR\LF 附加
- 正在读取的.csv文件中的值严格为文本。 第一列是要分析的.csv的路径和路径名。第二 列是客户端名称
- %%f和%%g返回的值是正确的
logparser
)
使用并保留tempfile.txt
——您自己选择的文件名
如果所选的tempfile.txt
位于典型的%temp%
目录中,我在tempfile.txt
周围使用了引号,以避免名称中出现空格问题。如果文件名被引用,则需要使用usebackq
,但如果临时文件名未被引用,则应省略
我相信这可以做得更干净,但是如果没有
logparser
,我就无法进行测试。请您重新审视您的问题,以便我们了解您的问题是什么。据我所见,%%g
将具有值secondFieldOfEachLineFromfaxreportnames.csv
并且您正在运行一个命令,logparser-I:csv“选择和(NUMPAGES)从FirstFieldOfEachLineFromfaxreportnames.csv where…
。我假设您的问题与延迟扩展无关,实际上是如何在没有回车和换行符对的情况下写入文件!在这种情况下,您在每个页面顶部的搜索栏中搜索此网站时发现了什么?因为e这个问题以前已经问过并回答过。重定向是基于行的。始终在末尾添加一个CRLF。@user14797724,不是重定向附加了换行符,而是echo
命令;您可以使用
而不是echo%%g,
来避免换行符(但它可能会失败,具体取决于%%g
)的值…所提到的行为是在解释器读入该行而不是执行该行时读取和替换变量。