当前位置: 首页 > 知识库问答 >
问题:

批处理文件,用于分析和呈现csv文件中的数据

南门棋
2023-03-14

我想创建一个. bat文件,它将显示文件名以“多哥”开头的每个. csv文件的最后一行。批处理文件将与. csv文件位于同一个文件夹中。要输出应该是:[文件名][最后一行数据]

此批处理文件应始终每5分钟运行和测试. csv文件。

共有1个答案

柳弘方
2023-03-14

SO不是免费的代码写入服务。您的问题可能会被删除或关闭,因为您没有显示任何解决问题的尝试。

尽管如此,很难批量启动,所以这里有一个解决方案。

@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION 
SET "sourcedir=U:\sourcedir\t w o"
FOR /f "delims=" %%a IN (
 'dir /b /a-d "%sourcedir%\togo*.csv" '
) DO (
 FOR /f "usebackqdelims=" %%q IN ("%sourcedir%\%%a") DO SET "line=%%q"
 ECHO %%a !line!
)

GOTO :EOF

前两行关闭批处理的调试显示(显示命令,然后执行它),并调用一种模式,在这种模式下,启用对“代码块”(括号中的一系列命令)中已更改的变量的访问(通常,它是禁用的,并且只有在遇到(或其他)时的值可用。)

第3行设置一个名为sourcedir的变量,并为其赋值。括起来的引号确保分配的值中不包含尾随空格。我特意使用了一个包含空格的directoryname,因为这是一个常见问题,它证明了我的测试机制中的批处理。你的目录名会有所不同——只需替换它即可。目录名表示“当前目录”

第4-6行可以合并为一行——只是风格上的。它的意思是“执行目录扫描,没有基本形式(/b)的目录名(/a-d),也就是说,只对名称位于变量sourcedir中且名称符合模式togo*.csv的目录进行名称扫描。通过忽略默认分隔符并分配结果来处理每个结果行(即目录列表的整行,即文件名)到元变量(循环控制变量)%%a

下一行读取由源代码目录名和当前在%a中的文件名构建的文件的每一行。delims被设置为空,因此整行将被分配给元变量%%q,并且usebackq选项告诉cmd带括号的字符串是一个带引号的文件名,而不是一个字符串(或者像的第一个那样是一个单引号的待执行命令)然后使用文件中的每个连续行进行设置,因此; ine将在for...%%q...结束时具有文件中的最后一行。

下一行显示了%%a中的文件名和行中该文件最后一行的文本。

请注意区别——%%x访问元变量的内容,%var%访问变量的内容,但是!var访问更改的值(如果调用了delayedexpansion)。

goto:eof表示“转到文件的物理结尾”CMD理解:eof表示“文件的物理结尾”

所以-剪切并粘贴到一个名为whatever的文件。击球,然后通过简单的进入跑动

*whatever*

一般来说

for /?

将为for命令提供帮助,这适用于大多数批处理命令。查看SO以了解数千个示例。

你也可以检查

timeout
cls
choice

了解如何每5分钟实现你的抱负。您可能希望从任务调度器运行此命令,以每5分钟获得一次显示,这有很多方法可以实现相同的效果。

 类似资料:
  • 主要内容:创建批处理文件,保存批处理文件,执行批处理文件,修改批处理文件在本章中,我们将学习如何创建,保存,执行和修改批处理文件。 创建批处理文件 批处理文件通常在记事本中创建。 因此,最简单的方法是打开记事本并输入脚本所需的命令。 对于这个练习,打开记事本并输入以下语句。 保存批处理文件 在创建批处理文件后,下一步是保存批处理文件。 批处理文件的扩展名为或。 命名批处理文件时需要注意的一些常规规则 - 在命名批处理文件时避免使用空格,有时会在从其他脚本中调用时产生问

  • 问题内容: 编写批处理文件以使Windows框上的某些文件自动化时,我需要暂停执行几秒钟(通常在测试/等待循环中,等待进程启动)。当时,我能找到的最佳解决方案是使用ping(我不告诉你),以达到预期的效果。我已经找到了更好的写了它在这里,它描述了一个可调用“wait.bat”,实现如下: 然后,您可以在自己的批处理文件中包含对wait.bat的调用,传递进入睡眠的秒数。 显然Windows 200

  • 我有一个带有注释的csv文件,其值需要在两个ArrayList之间拆分。例如: 实现这一目标的最佳方式是什么?我是否应该使用一个计数器,每次状态从%变到某个值时递增,反之亦然,然后如果计数器% 2 = 0,那么添加一个新的ArrayList并开始写入它?这是我能想到的唯一办法,但似乎有点笨拙,还有人有更好的主意吗? 编辑:我已经写了实际解析csv值的代码,我不需要帮助,只是想知道如何将值分成两个列

  • 我已经创建了一个批处理文件,将文件名中带有xxxx*的文件移动到临时文件夹,然后使用第二个命令forfiles删除原始目录中早于xx天的任何文件,然后使用robocopy/MOVE将所有其他文件移回原始目录。是否有一种方法可以运行forfiles命令从原始控制器中删除所有早于-xx天的文件,但名称中包含xxxx*的文件除外,而无需来回移动文件? 我的原始代码是:

  • 问题内容: 如何运行批处理文件并将参数传递给jar文件? 这不起作用 mybat.bat 运行蝙蝠文件 Java只能看到 问题答案: 我刚刚尝试了一个仅将参数转储到屏幕的小型Java程序: 和以下批处理文件: 我最终得到以下结果 对于与您相同的命令行,等号’=’消失了。现在,如果将批处理文件截断为此: 您将获得另一个结果(可能是您期望的结果-不清楚) 这种%*语法的优点在于,它可以通过接受任意数量

  • 本文向大家介绍浅谈Python批处理文件夹中的txt文件,包括了浅谈Python批处理文件夹中的txt文件的使用技巧和注意事项,需要的朋友参考一下 1 文件处理形式    近期由于处理大量数据,所以对于采用python进行处理文件的一些操作也打算整理一下;接下来主要说一下如何处理目录下的一系列txt文件。首先看一下我们将要处理目录下的15个类似的数据文件,其中提取的数据如图所示,以及在读写文件时所