首页 > 解决方案 > 批处理脚本 - findstr 用结果覆盖 csv 文件

问题描述

我正在使用批处理脚本。

我想在我的 sss_output.csv 文件中过滤掉包含特定字符串的行,并用结果覆盖同一个文件。

下面,我有以下代码:

@echo
cd C:\apache-jmeter-3.2\bin
jmeter.bat -n -t C:\apache-jmeter-3.2\bin\SessionManagement.jmx -l C:\apache-jmeter-3.2\bin\sss_output.csv
findstr /c:"WebDriver Sampler" sss_output.csv > sss_output.csv

运行执行此脚本后,jmeter.bat 语句将被执行并获得预期结果。但是,第二行未能过滤掉包含字符串“WebDriver Sampler”的行。

如果我在命令提示符下分别运行 jmeter.bat 和 findstr 行,它工作正常。我究竟做错了什么?

标签: batch-file

解决方案


重定向是在命令执行之前sss_output.csv处理的,所以在开始之前就被清空了findstr

将输出写入临时文件,然后将其移动到目标文件中:

findstr /C:"WebDriver Sampler" > "%TEMP%\sss_output.tmp"
move /Y "%TEMP%\sss_output.tmp" "sss_output.csv" > nul

推荐阅读